Re: Standby server with cascade logical replication could not be properly stopped under load

Alexey Makhmutov <a.makhmutov@postgrespro.ru>

From: Alexey Makhmutov <a.makhmutov@postgrespro.ru>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: shveta malik <shveta.malik@gmail.com>, Ajin Cherian <itsajin@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2025-05-22T18:22:02Z
Lists: pgsql-bugs

Attachments

Hi Bertrand, thank you for looking at this issue.

On 5/22/25 18:31, Bertrand Drouvot wrote:
> I agree with your analysis and I think that your proposed fix make sense. I
> wonder if the comment on top of GetStandbyFlushRecPtr() could be updated a bit
> though.

I've tried to update method comment as well in the updated patch: 
0001-Use-only-replayed-position-as-target-flush-point-3-pg-master.patch.
The same patch could be applied on top of PG 17 as well.

PG 16 does not have the slot synchronization logic, so its 
implementation of GetStandbyFlushRecPtr is slightly different and 
comments need to be updated to reflect this discrepancy as well. So, 
here is a variant of the same patch updated to be compatible with PG 16: 
0002-Use-only-replayed-position-as-target-flush-point-3-pg-16.patch

Thanks,
Alexey

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Use replay LSN as target for cascading logical WAL senders