Re: Why clearing the VM doesn't require registering vm buffer in wal record

Yura Sokolov <y.sokolov@postgrespro.ru>

From: Yura Sokolov <y.sokolov@postgrespro.ru>
To: Andres Freund <andres@anarazel.de>, Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: Melanie Plageman <melanieplageman@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Robert Haas <robertmhaas@gmail.com>, Heikki Linnakangas <hlinnaka@iki.fi>, "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Date: 2026-03-12T11:25:17Z
Lists: pgsql-hackers
06.03.2026 00:01, Andres Freund пишет:
> Hi,
> 
> On 2026-03-05 15:38:24 -0500, Andres Freund wrote:
>>> On Thu, 5 Mar 2026 at 21:16, Andres Freund <andres@anarazel.de> wrote:
>>>>
>>>> But it does seem like it could be a problem for incremental backup /
>>>> walsummarizer?
>>>
>>> I don't think it is, because that doesn't do calculations for non-main
>>> forks, it considers those forks always changed and includes them in
>>> full. Or at least, that was the response I got when I raised concerns
>>> about the FSM back when the incremental backup feature was being
>>> developed [0].
>>
>> There's explicit code for ignoring the FSM, but I don't see the same for the
>> VM. And that makes sense: VM changes are mostly WAL logged, just not
>> completely / generically (i.e. this complaint), whereas FSM changes are not
>> WAL logged at all.
> 
> Unfortunately I can confirm that incremental backups end up with an outdated
> VM.

That is why pg_probackup still archive VM at whole in incremental (WAL
parsing) backup.
That is why WAL-G's incremental backup in WAL-parsing mode is (was?)
considered unstable.

I know the problem for couple of years. Excuse me I didn't write about.

I didn't recognize fix could be as simple as registering VM buffers.
My bad. I fill so stupid :-(

It would be great if it will be fixed in all supported versions.

-- 
regards
Yura Sokolov aka funny-falcon



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Revamp the WAL record format.

  2. Allow I/O reliability checks using 16-bit checksums

  3. Make the visibility map crash-safe.