Re: remove spurious CREATE INDEX CONCURRENTLY wait
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael@paquier.xyz>
Cc: Dmitry Dolgov <9erthalion6@gmail.com>,
Alvaro Herrera <alvherre@2ndquadrant.com>,
James Coleman <jtc331@gmail.com>,
Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-11-10T01:51:15Z
Lists: pgsql-hackers
Michael Paquier <michael@paquier.xyz> writes: > On Mon, Nov 09, 2020 at 08:32:13PM -0500, Tom Lane wrote: >> Do we really need exclusive lock on the ProcArray to make this flag >> change? That seems pretty bad from a concurrency standpoint. > Any place where we update vacuumFlags acquires an exclusive LWLock on > ProcArrayLock. That's held for a very short time, so IMO it won't > matter much in practice, particularly if you compare that with the > potential gains related to the existing wait phases. Not sure I believe that it doesn't matter much in practice. If there's a steady stream of shared ProcArrayLock acquisitions (for snapshot acquisition) then somebody wanting exclusive lock will create a big hiccup, whether they hold it for a short time or not. regards, tom lane
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