Thread

  1. [PATCH v1 10/12] prune_xid-hist: collect data from vacuum

    Renan Alves Fonseca <renanfonseca@gmail.com> — 2025-05-30T11:34:49Z

    ---
     src/backend/access/heap/vacuumlazy.c | 6 ++++++
     1 file changed, 6 insertions(+)
    
    diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
    index 8565f6dd215..afd57e31f5b 100644
    --- a/src/backend/access/heap/vacuumlazy.c
    +++ b/src/backend/access/heap/vacuumlazy.c
    @@ -1955,6 +1955,8 @@ lazy_scan_prune(LVRelState *vacrel,
     	Relation	rel = vacrel->rel;
     	PruneFreezeResult presult;
     	int			prune_options = 0;
    +	TransactionId old_xid;
    +	TransactionId new_xid;
     
     	Assert(BufferGetBlockNumber(buf) == blkno);
     
    @@ -1977,10 +1979,12 @@ lazy_scan_prune(LVRelState *vacrel,
     	if (vacrel->nindexes == 0)
     		prune_options |= HEAP_PAGE_PRUNE_MARK_UNUSED_NOW;
     
    +	old_xid = ((PageHeader) page)->pd_prune_xid;
     	heap_page_prune_and_freeze(rel, buf, vacrel->vistest, prune_options,
     							   &vacrel->cutoffs, &presult, PRUNE_VACUUM_SCAN,
     							   &vacrel->offnum,
     							   &vacrel->NewRelfrozenXid, &vacrel->NewRelminMxid);
    +	new_xid = ((PageHeader) page)->pd_prune_xid;
     
     	Assert(MultiXactIdIsValid(vacrel->NewRelminMxid));
     	Assert(TransactionIdIsValid(vacrel->NewRelfrozenXid));
    @@ -2049,6 +2053,8 @@ lazy_scan_prune(LVRelState *vacrel,
     	vacrel->live_tuples += presult.live_tuples;
     	vacrel->recently_dead_tuples += presult.recently_dead_tuples;
     
    +	pgstat_update_transient_prune_xid_histogram(&vacrel->prune_xid_hist, old_xid, new_xid);
    +
     	/* Can't truncate this page */
     	if (presult.hastup)
     		vacrel->nonempty_pages = blkno + 1;
    -- 
    2.47.0
    
    
    --=-=-=
    Content-Type: text/x-patch
    Content-Disposition: attachment;
     filename=v1-0011-prune_xid-hist-transfer-data-to-shared-histogram.patch