Re: Fix slot synchronization with two_phase decoding enabled

Dilip Kumar <dilipbalaut@gmail.com>

From: Dilip Kumar <dilipbalaut@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Nisha Moond <nisha.moond412@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, shveta malik <shveta.malik@gmail.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-06-05T10:44:11Z
Lists: pgsql-hackers
On Thu, Jun 5, 2025 at 3:59 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Thu, Jun 5, 2025 at 2:53 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> >
> > On Tue, Jun 3, 2025 at 11:05 AM Nisha Moond <nisha.moond412@gmail.com> wrote:
> > >
> > >
> > > Attached v17 patches. Added a top-up patch 0002 implementing the idea
> > > suggested by Amit above.
> >
> > I have started reviewing this, although I haven't done a complete
> > review yet, but I have a question on the fix we are trying to do, IIUC
> > we are disallowing to use 'two phase' and 'failover' options together
> > at the create slot time and now users has to create slot with one of
> > the option and later enable other option right (if user want to use
> > both options)? But don't you think it will affect usability? because
> > if a user wants to use both the options together then after creating
> > the slot they need to track when is the right time to enable the other
> > option?
> >
>
> Note that this is the restriction for 17 only, as we can't think of a
> better way to fix it. For HEAD, we have exposed two_phase_at via the
> existing view to fix this bug, see 4868c96bc8. We can't do the same in
> backbranches as discussed in email [1]. If you have any better ideas
> to fix this in backbranch, then kindly let us know.
>
Sure, I will look at the commit and get back, Thanks.

-- 
Regards,
Dilip Kumar
Google



Commits

  1. Don't retreat slot's confirmed_flush LSN.

  2. Fix assertion failure during decoding from synced slots.

  3. Fix xmin advancement during fast_forward decoding.

  4. Fix slot synchronization for two_phase enabled slots.

  5. Again match pg_user_mappings to information_schema.user_mapping_options.