From: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
---|---|
To: | Kartyshov Ivan <i(dot)kartyshov(at)postgrespro(dot)ru> |
Cc: | Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>, hlinnaka(at)iki(dot)fi, alvherre(at)alvh(dot)no-ip(dot)org, pashkin(dot)elfe(at)gmail(dot)com, bharath(dot)rupireddyforpostgres(at)gmail(dot)com, euler(at)eulerto(dot)com, thomas(dot)munro(at)gmail(dot)com, peter(at)eisentraut(dot)org, amit(dot)kapila16(at)gmail(dot)com, dilipbalaut(at)gmail(dot)com, smithpb2250(at)gmail(dot)com, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: [HACKERS] make async slave to wait for lsn to be replayed |
Date: | 2024-07-31 16:40:48 |
Message-ID: | CAPpHfdt8rs0=NC3aHgcj_ZXGKEexZtk=Y8ytK188Ta3NWD5+Pg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Jul 15, 2024 at 2:02 PM Alexander Korotkov <aekorotkov(at)gmail(dot)com> wrote:
> On Mon, Jul 15, 2024 at 4:24 AM Alexander Korotkov <aekorotkov(at)gmail(dot)com> wrote:
> > Thanks to Kyotaro for the review. And thanks to Ivan for the patch
> > revision. I made another revision of the patch.
>
> I've noticed failures on cfbot. The attached revision addressed docs
> build failure. Also it adds some "quits" for background psql sessions
> for tests. Probably this will address test hangs on windows.
I made the following changes to the patch.
1) I've changed the check for snapshot in pg_wal_replay_wait(). Now
it checks that GetOldestSnapshot() returns NULL. It happens when both
ActiveSnapshot is NULL and RegisteredSnapshots pairing heap is empty.
This is the same condition when SnapshotResetXmin() sets out xmin to
invalid. Thus, we are not preventing WAL from replay. This should be
satisfied when pg_wal_replay_wait() isn't called within a transaction
with an isolation level higher than READ COMMITTED, another procedure,
or a function. Documented it this way.
2) Explicitly document in the PortalRunUtility() comment that
pg_wal_replay_wait() is another case when active snapshot gets
released.
3) I've removed tests with cascading replication. It's rather unclear
what problem these tests could potentially spot.
4) Did some improvements to docs, comments and commit message to make
them consistent with the patch contents.
The commit to pg17 was inconsiderate. But I feel this patch got much
better shape. Especially, now it's clear when the
pg_wal_replay_wait() procedure can be used. So, I dare commit this to
pg18 if nobody objects.
------
Regards,
Alexander Korotkov
Supabase
Attachment | Content-Type | Size |
---|---|---|
v23-0001-Implement-pg_wal_replay_wait-stored-procedure.patch | application/x-patch | 36.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2024-07-31 16:58:37 | Re: Recent 027_streaming_regress.pl hangs |
Previous Message | Robert Haas | 2024-07-31 16:23:22 | Re: On disable_cost |