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-06T12:03:27Z
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. Understood. On HEAD , we've exposed two_phase_at to fix this problem. It's unfortunate we can't back-port this solution. This means we have to impose new restrictions on what was previously allowed in older versions of PostgreSQL to avoid the issue. While it's not ideal, we don't have a better approach for those older branches right now. Thanks for clarifying. -- Regards, Dilip Kumar Google
Commits
-
Don't retreat slot's confirmed_flush LSN.
- ad5eaf390c58 18.0 landed
- 7318f241d29c 17.6 landed
- c0f51fde534d 16.10 landed
- 9d1a62359606 15.14 landed
- e68459489c20 14.19 landed
- e323d9df002d 13.22 landed
-
Fix assertion failure during decoding from synced slots.
- 3ff2a1f0c9e8 18.0 landed
-
Fix xmin advancement during fast_forward decoding.
- d65485b02b1f 13.21 landed
- aaf9e95e8764 18.0 landed
- 36148b22ee09 17.5 landed
- 21a7caeeb948 16.9 landed
- f6429bd7db5e 15.13 landed
- 1f63b3626a52 14.18 landed
-
Fix slot synchronization for two_phase enabled slots.
- 4868c96bc8c6 18.0 landed
-
Again match pg_user_mappings to information_schema.user_mapping_options.
- b6e39ca92eee 9.4.13 cited