<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://schew2381.github.io/</id><title>Seiji's Eng Blog</title><subtitle>A minimal, responsive and feature-rich Jekyll theme for technical writing.</subtitle> <updated>2026-07-15T04:10:43-07:00</updated> <author> <name>Seiji Chew</name> <uri>https://schew2381.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://schew2381.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://schew2381.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Seiji Chew </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>How PostgreSQL Builds Indexes Without Blocking Writes</title><link href="https://schew2381.github.io/posts/how-postgres-concurrent-index-creation-works/" rel="alternate" type="text/html" title="How PostgreSQL Builds Indexes Without Blocking Writes" /><published>2026-03-04T18:00:00-08:00</published> <updated>2026-04-08T17:23:03-07:00</updated> <id>https://schew2381.github.io/posts/how-postgres-concurrent-index-creation-works/</id> <content type="text/html" src="https://schew2381.github.io/posts/how-postgres-concurrent-index-creation-works/" /> <author> <name>Seiji Chew</name> </author> <category term="postgres" /> <category term="internals" /> <summary>CREATE INDEX takes a SHARE lock on the table for the entire build. That blocks all writes, which could be minutes or hours of downtime for large tables. CREATE INDEX CONCURRENTLY avoids this by splitting the work across multiple transactions with weaker locks. The internal mechanism is non-trivial. This post traces through the source code to explain exactly what happens. The core problem A n...</summary> </entry> </feed>
