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

From: Melanie Plageman <melanieplageman(at)gmail(dot)com>
To: Kirill Reshke <reshkekirill(at)gmail(dot)com>
Cc: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>, Robert Haas <robertmhaas(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)
Date: 2025-09-02 23:11:01
Message-ID: CAAKRu_Yc1VKM+iuKuJzncPXCYNqQz_jUFBYXuDiPC5k9sUiiQQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Sep 2, 2025 at 5:52 PM Melanie Plageman
<melanieplageman(at)gmail(dot)com> wrote:
>
> On Thu, Aug 28, 2025 at 5:12 AM Kirill Reshke <reshkekirill(at)gmail(dot)com> wrote:
> >
> > I did micro git-blame research here. I spotted only one related change
> > [0]. Looks like before this change pin was indeed needed.
> > But not after this change, so this visibilitymap_pin is just an oversight?
> > Related thread is [1]. I quickly checked the discussion in this
> > thread, and it looks like no one was bothered about these lines or VM
> > logging changes (in this exact pin buffer aspect). The discussion was
> > of other aspects of this commit.
>
> Wow, thanks so much for doing that research. Looking at it myself, it
> does indeed seem like just an oversight. It isn't harmful since it
> won't take another pin, but it is confusing, so I think we should at
> least remove it in master. I'm not as sure about back branches.

I've updated the commit message in the patch set to reflect the
research you did in attached v8.

- Melanie

Attachment Content-Type Size
v8-0002-Add-assert-and-log-message-to-visibilitymap_set.patch text/x-patch 1.8 KB
v8-0001-Remove-unneeded-VM-pin-from-VM-replay.patch text/x-patch 1.6 KB
v8-0005-Eliminate-xl_heap_visible-from-vacuum-phase-III.patch text/x-patch 24.9 KB
v8-0004-Make-heap_page_is_all_visible-independent-of-LVRe.patch text/x-patch 5.3 KB
v8-0008-Combine-vacuum-phase-I-VM-update-cases.patch text/x-patch 5.8 KB
v8-0006-Use-xl_heap_prune-record-for-setting-empty-pages-.patch text/x-patch 5.8 KB
v8-0009-Find-and-fix-VM-corruption-in-heap_page_prune_and.patch text/x-patch 11.7 KB
v8-0007-Combine-lazy_scan_prune-VM-corruption-cases.patch text/x-patch 7.1 KB
v8-0003-Eliminate-xl_heap_visible-in-COPY-FREEZE.patch text/x-patch 11.3 KB
v8-0014-Remove-xl_heap_visible-entirely.patch text/x-patch 24.4 KB
v8-0011-Update-VM-in-pruneheap.c.patch text/x-patch 12.7 KB
v8-0010-Keep-all_frozen-updated-too-in-heap_page_prune_an.patch text/x-patch 3.0 KB
v8-0012-Eliminate-xl_heap_visible-from-vacuum-phase-I-pru.patch text/x-patch 28.5 KB
v8-0013-Rename-PruneState.freeze-to-attempt_freeze.patch text/x-patch 4.1 KB
v8-0015-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisXi.patch text/x-patch 7.1 KB
v8-0016-Use-GlobalVisState-to-determine-page-level-visibi.patch text/x-patch 10.5 KB
v8-0017-Inline-TransactionIdFollows-Precedes.patch text/x-patch 4.9 KB
v8-0018-Unset-all-visible-sooner-if-not-freezing.patch text/x-patch 2.5 KB
v8-0019-Allow-on-access-pruning-to-set-pages-all-visible.patch text/x-patch 26.8 KB
v8-0020-Add-helper-functions-to-heap_page_prune_and_freez.patch text/x-patch 18.9 KB
v8-0021-Reorder-heap_page_prune_and_freeze-parameters.patch text/x-patch 5.8 KB
v8-0022-Set-pd_prune_xid-on-insert.patch text/x-patch 6.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2025-09-02 23:38:31 Re: COPY TO: provide hint when WHERE clause is used
Previous Message Nathan Bossart 2025-09-02 21:57:48 Re: Use bool with synced field (src/include/replication/slot.h)