On Sun, May 17, 2026 at 1:38 AM Hüseyin Demir <[email protected]> wrote:
>
> Hi Ant,
>
> Good idea.

+1.

CheckPointSnapBuild() and CheckPointLogicalRewriteHeap() call
ReplicationSlotsComputeLogicalRestartLSN(), which seems to use
last_saved_restart_lsn for persistent logical slots. Since
last_saved_restart_lsn is updated by CheckPointReplicationSlots(),
if those functions run before it, their cleanup decisions are still
based on the restart_lsn saved at the previous checkpoint.

So, isn't it better to move them after CheckPointReplicationSlots()
as well, so that logical snapshot and rewrite mapping cleanup can use
the newly saved restart_lsn?

Of course, we'd first need to confirm that doing so is safe, though.

Regards,

-- 
Fujii Masao


Reply via email to