Eliminate redundant tuple visibility check in vacuum - Mailing list pgsql-hackers

From Melanie Plageman
Subject Eliminate redundant tuple visibility check in vacuum
Date
Msg-id CAAKRu_br124qsGJieuYA0nGjywEukhK1dKBfRdby_4yY3E9SXA@mail.gmail.com
Whole thread Raw
Responses Re: Eliminate redundant tuple visibility check in vacuum
Re: Eliminate redundant tuple visibility check in vacuum
List pgsql-hackers
While working on a set of patches to combine the freeze and visibility
map WAL records into the prune record, I wrote the attached patches
reusing the tuple visibility information collected in heap_page_prune()
back in lazy_scan_prune().

heap_page_prune() collects the HTSV_Result for every tuple on a page
and saves it in an array used by heap_prune_chain(). If we make that
array available to lazy_scan_prune(), it can use it when collecting
stats for vacuum and determining whether or not to freeze tuples.
This avoids calling HeapTupleSatisfiesVacuum() again on every tuple in
the page.

It also gets rid of the retry loop in lazy_scan_prune().

- Melanie

Attachment

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Return value of pg_promote()
Next
From: David Rowley
Date:
Subject: Re: Debian 12 gcc warning