Re: Newly created replication slot may be invalidated by checkpoint
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Vitaly Davydov <v.davydov@postgrespro.ru>
Cc: "suyu.cmj" <mengjuan.cmj@alibaba-inc.com>,
aekorotkov <aekorotkov@gmail.com>, tomas <tomas@vondra.me>, michael <michael@paquier.xyz>, "bharath.rupireddyforpostgres" <bharath.rupireddyforpostgres@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-09-24T11:20:55Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Prevent invalidation of newly synced replication slots.
- 3243c0177efb 17.8 landed
- 919c9fa13cd0 18.2 landed
- 851f6649cc18 19 (unreleased) landed
-
Prevent invalidation of newly created replication slots.
- 3510ebeb0dfa 17.8 landed
- 24cce33c332a 16.12 landed
- aae05622a7cb 15.16 landed
- 7406df60569f 14.21 landed
- d3ceb20846e4 18.2 landed
- 006dd4b2e5b3 19 (unreleased) landed
-
Fix re-distributing previously distributed invalidation messages during logical decoding.
- 45c357e0e85d 17.6 cited
-
Keep WAL segments by the flushed value of the slot's restart LSN
- 2090edc6f32f 17.6 cited
-
Keep WAL segments by slot's last saved restart LSN
- ca307d5cec90 18.0 cited
On Tue, Sep 23, 2025 at 12:19 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Wed, Sep 17, 2025 at 4:19 PM Vitaly Davydov <v.davydov@postgrespro.ru> wrote: > > > > [1] 0001-Fix-invalidation-when-slot-is-created-during-checkpo.patch > > > > - /* Calculate how many segments are kept by slots. */ > - keep = slotsMinReqLSN; > + /* > + * Calculate how many segments are kept by slots. Keep the wal using > + * the minimal value from the current reserved LSN and the reserved LSN at > + * the moment of checkpoint start (before CheckPointReplicationSlots). > + */ > + keep = XLogGetReplicationSlotMinimumLSN(); > + if (!XLogRecPtrIsInvalid(slotsMinReqLSN)) > + keep = Min(keep, slotsMinReqLSN); > > Can we add why we need this additional calculation here? > I was thinking some more about this solution. Won't it lead to the same problem if ReplicationSlotReserveWal() calls ReplicationSlotsComputeRequiredLSN() after the above calculation of checkpointer? -- With Regards, Amit Kapila.