Hi Alexander, On Fri, Aug 02, 2024 at 06:22:21PM +0000, Alexander Korotkov wrote: > Implement pg_wal_replay_wait() stored procedure > > pg_wal_replay_wait() is to be used on standby and specifies waiting for > the specific WAL location to be replayed. This option is useful when > the user makes some data changes on primary and needs a guarantee to see > these changes are on standby. > > The queue of waiters is stored in the shared memory as an LSN-ordered pairing > heap, where the waiter with the nearest LSN stays on the top. During > the replay of WAL, waiters whose LSNs have already been replayed are deleted > from the shared memory pairing heap and woken up by setting their latches. > > pg_wal_replay_wait() needs to wait without any snapshot held. Otherwise, > the snapshot could prevent the replay of WAL records, implying a kind of > self-deadlock. This is why it is only possible to implement > pg_wal_replay_wait() as a procedure working without an active snapshot, > not a function. > > Catversion is bumped.
I've spotted that this patch uses an OID that should not be used during the development cycle: +{ oid => '111', + descr => 'wait for the target LSN to be replayed on standby with an optional timeout', Please use something in the 8000-9999 range, as required by 98eab30b93d5. Thanks, -- Michael
signature.asc
Description: PGP signature