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-16T20:35:54Z
Lists: pgsql-hackers
On 2020-Nov-16, Dmitry Dolgov wrote: > The same with reindex without locks: > > nsecs : count distribution > 512 -> 1023 : 0 | | > 1024 -> 2047 : 111345 | | > 2048 -> 4095 : 6997627 |****************************************| > 4096 -> 8191 : 18575 | | > 8192 -> 16383 : 586 | | > 16384 -> 32767 : 312 | | > 32768 -> 65535 : 18 | | > > The same with reindex with locks: > > nsecs : count distribution > 512 -> 1023 : 0 | | > 1024 -> 2047 : 59438 | | > 2048 -> 4095 : 6901187 |****************************************| > 4096 -> 8191 : 18584 | | > 8192 -> 16383 : 581 | | > 16384 -> 32767 : 280 | | > 32768 -> 65535 : 84 | | > > Looks like with reindex without locks is indeed faster (there are mode > samples in lower time section), but not particularly significant to the > whole distribution, especially taking into account extremity of the > test. I didn't analyze these numbers super carefully, but yeah it doesn't look significant. I'm looking at these patches now, with intention to push.
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