Reduce page locking in GIN vacuum

Teodor Sigaev <teodor@sigaev.ru>

Commit: 218f51584d5a9fcdf702bcc7f54b5b65e255c187
Author: Teodor Sigaev <teodor@sigaev.ru>
Date: 2017-03-23T16:38:47Z
Releases: 10.0
Reduce page locking in GIN vacuum

GIN vacuum during cleaning posting tree can lock this whole tree for a long
time with by holding LockBufferForCleanup() on root. Patch changes it with
two ways: first, cleanup lock will be taken only if there is an empty page
(which should be deleted) and, second, it tries to lock only subtree, not the
whole posting tree.

Author: Andrey Borodin with minor editorization by me
Reviewed-by: Jeff Davis, me

https://commitfest.postgresql.org/13/896/

Files