Re: remove spurious CREATE INDEX CONCURRENTLY wait
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Dmitry Dolgov <9erthalion6@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Tom Lane <tgl@sss.pgh.pa.us>, James Coleman <jtc331@gmail.com>, Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-11-17T17:14:53Z
Lists: pgsql-hackers
Attachments
- v6-0001-indexcmds.c-reorder-function-prototypes.patch (text/x-diff)
So I made the change to set the statusFlags with only LW_SHARED -- both in existing uses (see 0002) and in the new CIC code (0003). I don't think 0002 is going to have a tremendous performance impact, because it changes operations that are very infrequent. But even so, it would be weird to leave code around that uses exclusive lock when we're going to add new code that uses shared lock for the same thing. I still left the REINDEX CONCURRENTLY support in split out in 0004; I intend to get the first three patches pushed now, and look into 0004 again later.
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