Re: UNDO with FILEOPS, and the FLUX table AM

From: Manu <manuelreyesbravo(at)gmail(dot)com>
To: Greg Burd <greg(at)burd(dot)me>
Cc: Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>, shihao zhong <zhong950419(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: UNDO with FILEOPS, and the FLUX table AM
Date: 2026-10-18 00:16:17
Message-ID: 179228257731.1791152.8479044033826431218@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Greg,

> so, hopefully I've delivered v7 with:

You did, and it's the real v7 this time. I ran the three checks I said I
would, on master at 964d88fac46 (there is a rebase note at the end):

test_fileops/t/017 passes on all three paths -- online ROLLBACK, abort redo on
a standby, startup undo -- 12/12, and t/018 (rename) is 68/68. FileOpsRename
is immediate-with-rollback as of 0005, which is what the harness expected. The
logical-revert-worker path that 0005 also mentions isn't exercised by 017, so
that one is still uncovered if you want to add it.

Per-prefix: all 20 prefixes build without warnings and pass the core check plus
their own tests. The three things I flagged on v4 are fixed -- test_fileops is
registered from 0002, 0004 carries only recovery/071, and recovery/134 passes
in 0006.

The fsync repro from the v6 thread, v4 vs v7, same machine, on a quiet lane
(median with bootstrap CI95, n=9; both are cassert builds, so these are
ratios, not production absolutes):

- ROLLBACK of 32,000 chmods: 23.3 s -> 49.6 ms.
- startup undo, 32,000 in flight: 24.3 s -> 48 ms.
- abort redo of 32,000 inverses (n=3): ~24.8 s -> ~0.06 s.

That is roughly 470x, 500x and 400x, and the gap grows with N (46x at 200),
which matches v4 doing one fsync per record and v7 batching them.

One rebase note: the posted v7 doesn't apply on current master (26bd08f):
0002 conflicts in recovery/meson.build with 068c9aaec31 (the new
t/060_multixact_crashed_updater.pl) and leaves a duplicate 060. It is a
context conflict; I measured on 964d88fac46, where git am is clean. cfbot will
need the rebase too.

Regards,
Manu

Browse pgsql-hackers by date

  From Date Subject
Next Message Manu 2026-10-18 01:16:05 Re: query_int wrongly parses zero-padded input
Previous Message Tom Lane 2026-10-18 00:09:54 Re: pgstat: allow a stats kind to use its own dedicated dsa/dshash