Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements
Mikhail Nikalayeu <mihailnikalayeu@gmail.com>
From: Mihail Nikalayeu <mihailnikalayeu@gmail.com>
To: Antonin Houska <ah@cybertec.at>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Alvaro Herrera <alvherre@2ndquadrant.com>
Date: 2025-11-27T18:57:23Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Revert changes to CONCURRENTLY that "sped up" Xmin advance
- e28bb8851969 15.0 cited
-
VACUUM: ignore indexing operations with CONCURRENTLY
- d9d076222f5b 14.0 cited
-
Avoid spurious waits in concurrent indexing
- c98763bf51bf 14.0 cited
Hi, Antonin! On Thu, Nov 27, 2025 at 6:40 PM Mihail Nikalayeu <mihailnikalayeu@gmail.com> wrote: > > 1. Create an empty index. > Yes, patch does exactly the same, introducing special lightweight AM - > STIR (Short Term Index Replacement) to collect new tuples. Initially understood incorrectly - in your solution you propose to use a single index. But STIR is used to collect new coming tuples, while the main index is built using a batched way. > To avoid insertions of tuples that concurrent transactions have just > inserted, we'd need something like index.c:validate_index() (i.e. insert > into the index only the tuples that it does not contain yet), but w/o > snapshot because we already have the heap tuples collected. And later main and STIR are merged. Best regards, Mikhail.