Re: Implement waiting for wal lsn replay: reloaded
Xuneng Zhou <xunengzhou@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Clean up 019_replslot_limit.pl comments
- 0b866bb90368 19 (unreleased) landed
-
Stabilize 019_replslot_limit.pl: wait on slot restart_lsn
- cdb1d1cf1de6 19 (unreleased) landed
-
Use WAIT FOR LSN in PostgreSQL::Test::Cluster::wait_for_catchup()
- 7e8aeb9e483d 19 (unreleased) landed
- f30848cb05d4 19 (unreleased) landed
-
Add tab completion for the WAIT FOR LSN MODE option
- 76948337f724 19 (unreleased) landed
-
Add the MODE option to the WAIT FOR LSN command
- 49a181b5d634 19 (unreleased) landed
-
Extend xlogwait infrastructure with write and flush wait types
- 7a39f43d885b 19 (unreleased) landed
-
Unify error messages
- 502e256f2262 19 (unreleased) cited
-
Optimize shared memory usage for WaitLSNProcInfo
- 75e82b2f5a6f 19 (unreleased) landed
-
Fix WaitLSNWakeup() fast-path check for InvalidXLogRecPtr
- ede6acef4967 19 (unreleased) landed
-
Fix incorrect function name in comments
- 23792d738158 19 (unreleased) landed
-
Add infrastructure for efficient LSN waiting
- 3b4e53a075ea 19 (unreleased) landed
-
Add pairingheap_initialize() for shared memory usage
- 8af3ae0d4b36 19 (unreleased) landed
-
Implement WAIT FOR command
- 447aae13b030 19 (unreleased) landed
Attachments
- v2-0001-Use-WAIT-FOR-LSN-in.patch (application/octet-stream) patch v2-0001
Hi, On Wed, Nov 5, 2025 at 5:51 PM Alexander Korotkov <aekorotkov@gmail.com> wrote: > > Hi! > > On Mon, Nov 3, 2025 at 5:13 PM Andres Freund <andres@anarazel.de> wrote: > > On 2025-11-03 16:06:58 +0100, Álvaro Herrera wrote: > > > On 2025-Nov-03, Alexander Korotkov wrote: > > > > > > > I'd like to give this subject another chance for pg19. I'm going to > > > > push this if no objections. > > > > > > Sure. I don't understand why patches 0002 and 0003 are separate though. > > > > FWIW, I appreciate such splits. Even if the functionality isn't usable > > independently, it's still different type of code that's affected. And the > > patches are each big enough to make that worthwhile for easier review. > > Thank you for the feedback, pushed. > > > One thing that'd be nice to do once we have WAIT FOR is to make the common > > case of wait_for_catchup() use this facility, instead of polling... > > The draft patch for that is attached. WAIT FOR doesn't handle all the > possible use cases of wait_for_catchup(), but I've added usage when > it's appropriate. > > ------ > Regards, > Alexander Korotkov > Supabase I tested the patch using make check-world, and it worked well. I also made a few adjustments: - Added an unconditional chomp($isrecovery) after querying pg_is_in_recovery() to prevent newline mismatches when $target_lsn is accidently defined. - Added chomp($output) to normalize the result from WAIT FOR LSN before comparison. At the moment, the WAIT FOR LSN command supports only the replay mode. If we intend to extend its functionality more broadly, one option is to add a mode option or something similar. Are users expected to wait for flush(or others) completion in such cases? If not, and the TAP test is the only intended use, this approach might be a bit of an overkill. -- Best, Xuneng