Re: [PATCH] Fix references in comments, and sync up heap_page_is_all_visible() with heap_page_prune_and_freeze()

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: Gregory Burd <greg(at)burd(dot)me>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [PATCH] Fix references in comments, and sync up heap_page_is_all_visible() with heap_page_prune_and_freeze()
Date: 2025-05-09 18:58:03
Message-ID: aB5QO48EZkO45cS5@nathan
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, May 06, 2025 at 03:39:07PM +0000, Gregory Burd wrote:
> 0001: Updates that comment so future authors know that this "stripped
> down function" should retain the logic in heap_page_prune_and_freeze(),
> not lazy_scan_prune() as was the case before 6dbb490.

Hm. It certainly had some resemblance before commit 6dbb490, but looking
at the two code paths now, I'm not sure whether this comment is useful
anymore. I do think it's more accurate to point to
heap_page_prune_and_freeze(), though. And there's still an assertion in
lazy_scan_prune() to make sure things are in agreement. Perhaps we should
rewrite the comment to something like

* This is a specialized version of the logic from
* heap_page_prune_and_freeze(). If you change anything here, make sure
* that everything says in sync. Note that an assertion in
* lazy_scan_prune() calls us to verify that everybody still agrees. Be
* sure to avoid introducing new side effects here.

> 0002: Mimics the same loop logic as in heap_page_is_all_visible() so as
> to a) stay in sync and b) benefit from the mentioned CPU prefetching
> optimization.
> 0003: Moves the ItemSetPointer() just a bit further down in the function
> again to a) stay in sync and b) to sometimes avoid that tiny overhead.

These look generally reasonable to me, but they might be v19 material at
this point. Have you been able to measure the impact of 0002? I didn't
see much discussion about this in the thread that changed it for what is
now known as heap_page_prune_and_freeze() [0].

[0] https://postgr.es/m/17255-14c0ac58d0f9b583%40postgresql.org

--
nathan

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2025-05-09 19:50:27 Re: PATCH: jsonpath string methods: lower, upper, initcap, l/r/btrim, replace, split_part
Previous Message Robert Haas 2025-05-09 18:49:57 Re: SQL:2011 application time