Use streaming read I/O in GiST vacuuming
authorMelanie Plageman
Fri, 21 Mar 2025 18:05:36 +0000 (14:05 -0400)
committerMelanie Plageman
Fri, 21 Mar 2025 18:06:45 +0000 (14:06 -0400)
commit69273b818b1df82c36b2b2acb592db3d0743cc7c
treed44ad463450e7d574324ae9dee8d2cd9cd9aa022
parent3f850c3fc5442084d13122be7f54335e4d017bef
Use streaming read I/O in GiST vacuuming

Like c5c239e26e387 did for btree vacuuming, make GiST vacuum use the
read stream API for sequentially processed pages.

Because it is possible for concurrent insertions to relocate unprocessed
index entries to already vacuumed pages, GiST vacuum must backtrack and
reprocess those pages. These pages are still read with explicit
ReadBuffer() calls.

Author: Andrey M. Borodin 
Reviewed-by: Melanie Plageman
Discussion: https://postgr.es/m/EFEBED92-18D1-4C0F-A4EB-CD47072EF071%40yandex-team.ru
src/backend/access/gist/gistvacuum.c