Hi,

On Tue, Sep 23, 2025 at 10:38:14PM +0800, suyu.cmj wrote:
> Hi, all,
> I have a question about a behavioral difference in 
> InvalidatePossiblyObsoleteSlot() between PG15 (and earlier) and PG16 (and 
> later):
> In PG15 and earlier: while attempting to acquire a slot, if the slot's 
> restart_lsn advanced to be greater than oldestLSN during the process, the 
> slot would not be marked invalid.
> In PG16 and later: the invalidation decision is made solely based on the 
> initial_restart_lsn captured at the start of the check, even if the slot's 
> restart_lsn advances above oldestLSN during the process, the slot may still 
> be marked invalid.
> I wonder why not decide whether to mark the slot as invalid based on the 
> slot's current restart_lsn? If a slot's restart_lsn has already advanced 
> sufficiently during the invalidation process, indicating it's actively being 
> used, shouldn't we refrain from invalidating it? What is the rationale behind 
> this design change?
> Looking forward to your insights.

That comes from 818fefd8fd4. Does the wording in the commit message ([1]) and 
the
linked thread ([2]) answer your question?

[1]: postgr.es/c/818fefd8fd4
[2]: postgr.es/m/[email protected]

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com


Reply via email to