pgsql: Remove retry loop in heap_page_prune().

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Remove retry loop in heap_page_prune().
Date: 2023-10-02 16:04:09
Message-ID: E1qnLOz-0079Pa-JM@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove retry loop in heap_page_prune().

The retry loop is needed because heap_page_prune() calls
HeapTupleSatisfiesVacuum() and then lazy_scan_prune() does the same
thing again, and they might get different answers due to concurrent
clog updates. But this patch makes heap_page_prune() return the
HeapTupleSatisfiesVacuum() results that it computed back to the
caller, which allows lazy_scan_prune() to avoid needing to recompute
those values in the first place. That's nice both because it eliminates
the need for a retry loop and also because it's cheaper.

Melanie Plageman, reviewed by David Geier, Andres Freund, and me.

Discussion: https://postgr.es/m/CAAKRu_br124qsGJieuYA0nGjywEukhK1dKBfRdby_4yY3E9SXA%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1ccc1e05ae8feabf444259234d34e1e32231604d

Modified Files
--------------
src/backend/access/heap/pruneheap.c | 36 ++++++++++++++----------------
src/backend/access/heap/vacuumlazy.c | 43 +++++++++++-------------------------
src/include/access/heapam.h | 25 +++++++++++++++++++++
3 files changed, 55 insertions(+), 49 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2023-10-02 17:28:28 pgsql: Fix omission of column-level privileges in selective pg_restore.
Previous Message Heikki Linnakangas 2023-10-02 10:08:36 pgsql: Flush WAL stats in bgwriter