Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements
Antonin Houska <ah@cybertec.at>
From: Antonin Houska <ah@cybertec.at>
To: Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: Mihail Nikalayeu <mihailnikalayeu@gmail.com>,
Sergey Sargsyan <sergey.sargsyan.2001@gmail.com>,
alvherre@kurilemu.de, Andres Freund <andres@anarazel.de>,
Michael Paquier <michael@paquier.xyz>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Andrey Borodin <amborodin86@gmail.com>,
Melanie Plageman <melanieplageman@gmail.com>
Date: 2025-12-01T09:09:29Z
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
Matthias van de Meent <boekewurm+postgres@gmail.com> wrote: > I'm a bit worried, though, that LR may lose updates due to commit > order differences between WAL and PGPROC. I don't know how that's > handled in logical decoding, and can't find much literature about it > in the repo either. Can you please give me an example of this problem? I understand that two transactions do this T1: RecordTransactionCommit() T2: RecordTransactionCommit() T2: ProcArrayEndTransaction() T1: ProcArrayEndTransaction() but I'm failing to imagine this if both transactions are trying to update the same row. For example, if T1 is updating a row that T2 wants to update as well, then T2 has to wait for T1's call of ProcArrayEndTransaction() before it can perform its update, and therefore it (T2) cannot start its commit sequence before T1 has completed it: T1: RecordTransactionCommit() T1: ProcArrayEndTransaction() T2: RecordTransactionCommit() T2: ProcArrayEndTransaction() -- Antonin Houska Web: https://www.cybertec-postgresql.com