Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)

From: Melanie Plageman <melanieplageman(at)gmail(dot)com>
To: Alexander Lakhin <exclusion(at)gmail(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Tomas Vondra <tomas(at)vondra(dot)me>, David Rowley <dgrowleyml(at)gmail(dot)com>, Kirill Reshke <reshkekirill(at)gmail(dot)com>, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, Andrey Borodin <x4mmm(at)yandex-team(dot)ru>, Xuneng Zhou <xunengzhou(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)
Date: 2026-09-10 19:25:38
Message-ID: CAAKRu_bS3nfMJCF2fjE+ceb5-t=2p_VPMk2PWuVomrOFxg5DGQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Sep 10, 2026 at 2:31 PM Melanie Plageman
<melanieplageman(at)gmail(dot)com> wrote:
>
> An adversarial LLM review of this patch series found that I call
> visibilitymap_pin() after taking a cleanup lock on the heap page in
> the on-access pruning path -- which is not good. Here is a small patch
> to fix that. Doing it before we're sure we can get the cleanup lock
> could occasionally lead to an unneeded pin, but such situations should
> be uncommon.

It also reported that since d96f87332b3 the FSM will be less up to
date on the standby since COPY FREEZE criteria for updating the FSM is
if (action == BLK_NEEDS_REDO && freespace < BLCKSZ / 5) and the old
VM record replay code had no such freespace check. I'll post a patch
to fix that tomorrow. The fix is pretty simple: just update the FSM if
the heap multi insert record sets the VM.

- Melanie

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Sami Imseih 2026-09-10 19:40:51 Re: Rename PqMsg_Progress to PqMsg_ParallelWorkerProgress
Previous Message Masahiko Sawada 2026-09-10 18:59:41 Re: timeout value overflow in wait for lsn