Re: remove spurious CREATE INDEX CONCURRENTLY wait
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: James Coleman <jtc331@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-08-20T06:11:19Z
Lists: pgsql-hackers
On Wed, Aug 19, 2020 at 02:16:46PM -0400, Alvaro Herrera wrote: > I did not set the flag in REINDEX CONCURRENTLY, but as I understand it > can be done too, since in essence it's the same thing as a CIC from a > snapshot management point of view. Yes, I see no problems for REINDEX CONCURRENTLY as well as long as there are no predicates and expressions involved. The transactions that should be patched are all started in ReindexRelationConcurrently. The transaction of index_concurrently_swap() cannot set up that though. Only thing to be careful is to make sure that safe_flag is correct depending on the list of indexes worked on. > Also, per [1], ISTM this flag could be used to tell lazy VACUUM to > ignore the Xmin of this process too, which the previous formulation > (where all CICs were so marked) could not. This patch doesn't do that > yet, but it seems the natural next step to take. > > [1] https://postgr.es/m/20191101203310.GA12239@alvherre.pgsql Could we consider renaming vacuumFlags? With more flags associated to a PGPROC entry that are not related to vacuum, the current naming makes things confusing. Something like statusFlags could fit better in the picture? -- Michael
Commits
-
Restore lock level to set vacuum flags
- 9aa91cb33b70 14.2 landed
- 0726c764bc4e 15.0 landed
-
Restore lock level to update statusFlags
- dcfff74fb166 14.0 landed
-
Avoid spurious waits in concurrent indexing
- c98763bf51bf 14.0 landed
-
Centralize logic for skipping useless ereport/elog calls.
- 789b938bf2b8 14.0 landed
-
Don't hold ProcArrayLock longer than needed in rare cases
- 450c8230b1f7 14.0 landed
-
Relax lock level for setting PGPROC->statusFlags
- 27838981be9d 14.0 landed
-
Rename PGPROC->vacuumFlags to statusFlags
- cd9c1b3e197a 14.0 landed
-
snapshot scalability: Move PGXACT->vacuumFlags to ProcGlobal->vacuumFlags.
- 5788e258bb26 14.0 cited
-
Allow an autovacuum worker to be interrupted automatically when it is found
- acac68b2bcae 8.3.0 cited