pgsql: Use streaming read I/O in GiST vacuuming

From: Melanie Plageman <melanieplageman(at)gmail(dot)com>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Use streaming read I/O in GiST vacuuming
Date: 2025-03-21 18:07:58
Message-ID: E1tvgmk-000KzM-0S@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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 <x4mmm(at)yandex-team(dot)ru>
Reviewed-by: Melanie Plageman <melanieplageman(at)gmail(dot)com>
Discussion: https://postgr.es/m/EFEBED92-18D1-4C0F-A4EB-CD47072EF071%40yandex-team.ru

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/69273b818b1df82c36b2b2acb592db3d0743cc7c

Modified Files
--------------
src/backend/access/gist/gistvacuum.c | 84 ++++++++++++++++++++++++++----------
1 file changed, 61 insertions(+), 23 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2025-03-21 19:14:44 pgsql: Place "extern" declaration in the right part of pg_class.h.
Previous Message David G. Johnston 2025-03-21 16:39:26 Re: pgsql: Add vacuum_truncate configuration parameter.