Use streaming read I/O in SP-GiST vacuuming
authorMelanie Plageman <melanieplageman@gmail.com>
Fri, 21 Mar 2025 21:49:20 +0000 (17:49 -0400)
committerMelanie Plageman <melanieplageman@gmail.com>
Fri, 21 Mar 2025 21:51:22 +0000 (17:51 -0400)
commite215166c9c810950cff101cc098e66c8758538fa
tree1ef796c911f404e1d7246029e34c1cf996223bac
parente51ca405ed823b28358f216642b5a80f1f886f5d
Use streaming read I/O in SP-GiST vacuuming

Like 69273b818b1df did for GiST vacuuming, make SP-GiST vacuum use the
read stream API for vacuuming physically contiguous index pages.

Concurrent insertions may cause SP-GiST index tuples to be redirected.
While vacuuming, these are added to a pending list which is later
processed to ensure no dead tuples are left behind. Pages containing
such tuples are still read by directly calling ReadBuffer() and do not
use the read stream API.

Author: Andrey M. Borodin <x4mmm@yandex-team.ru>
Reviewed-by: Melanie Plageman <melanieplageman@gmail.com>
Discussion: https://postgr.es/m/37432403-8657-403B-9CDF-5A642BECDD81%40yandex-team.ru
src/backend/access/spgist/spgvacuum.c