Re: inefficient loop in StandbyReleaseLockList()
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, "Bossart, Nathan" <bossartn@amazon.com>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, "sulamul@gmail.com" <sulamul@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2021-10-29T06:52:30Z
Lists: pgsql-hackers
On Thu, Oct 28, 2021 at 04:52:48PM -0700, Andres Freund wrote: > I suspect the reverse lock order release could be tad faster. But I probably > wouldn't change it either - I was more thinking of some of the other cases > that deleted the first element, here it's a bit harder to know wether there's > a chance of a CFI() or such. Actually, as the list of recovery locks is saved in TopMemoryContext, wouldn't it be better to keep a per-cell deletion of the list, which would mean that we'd better do the operation in the reverse order to make things faster with the new list implementation? But that's what Andres points at with CFIs in the middle of one list of the hash table processed? -- Michael
Commits
-
Doc: add some notes about performance of the List functions.
- 27ef132a805c 15.0 landed
-
Avoid O(N^2) behavior in SyncPostCheckpoint().
- 65c6cab1365a 15.0 landed
- 08cfa5981e17 14.1 landed
- 0151af40cd4e 13.5 landed
-
Avoid some other O(N^2) hazards in list manipulation.
- e477642a1ba8 13.5 landed
- ad87bf355214 14.1 landed
- e9d9ba2a4ddc 15.0 landed
-
Avoid O(N^2) behavior when the standby process releases many locks.
- df238aed1090 13.5 landed
- 8424dfced790 14.1 landed
- 6301c3adabd9 15.0 landed