Re: UNDO with FILEOPS, and the FLUX table AM

From: Greg Burd <greg(at)burd(dot)me>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Cc: zhong950419(at)gmail(dot)com, manuelreyesbravo(at)gmail(dot)com, boekewurm+postgres(at)gmail(dot)com, hannuk(at)google(dot)com
Subject: Re: UNDO with FILEOPS, and the FLUX table AM
Date: 2026-10-29 15:40:15
Message-ID: auNohP9BuRBsdfpF@floki
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Oct 25, 2026 at 6:56 PM shihao zhong <zhong950419(at)gmail(dot)com> wrote:
> Matthias said the series does too much at once, and I agree. Maybe
> it could be split into a few smaller pieces. Each one would come
> with its own user.

Hi Shihao,

Agreed, and that is what I'll do next. The next version will be only
the first three commits, the cluster-wide UNDO engine and FILEOPS:

0001 cluster-wide UNDO engine (records in the WAL stream)
0002 transactional filesystem operations (FILEOPS) backed by UNDO
0003 route filesystem mutations through FILEOPS

The thread will cover just those from then on. The per-backend UNDO
logs, the ATM and logical revert worker, the index AM changes, the
table AM hooks and FLUX are set aside for now; they can come back later
as separate threads, each with its own user, if this part goes
anywhere.

FILEOPS is the user of the UNDO engine in that set, so it has the
shape you describe, an engine plus one consumer, though it is larger
than your sketch: 0001-0003 add about 17,000 lines, 12,500 of them C
outside the tests.

The series is already registered as CF 7389, so it has the cfbot GitHub
branch; I'll keep using that entry for the reduced series.

Thanks for the review, and for pushing on the scope.

best.

-greg

In response to

Browse pgsql-hackers by date

  From Date Subject
Previous Message Jan Nidzwetzki 2026-10-29 15:34:32 Re: [PATCH] Fix PITR pause bypass when initial XLOG_RUNNING_XACTS has subxid overflow