Re: Decoding of two-phase xacts missing from CREATE_REPLICATION_SLOT command
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Jeff Davis <pgsql@j-davis.com>
Cc: Ajin Cherian <itsajin@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>, Amit Kapila <akapila@postgresql.org>, vignesh C <vignesh21@gmail.com>, Peter Smith <smithpb2250@gmail.com>
Date: 2021-06-10T03:08:31Z
Lists: pgsql-hackers
On Thu, Jun 10, 2021 at 4:13 AM Jeff Davis <pgsql@j-davis.com> wrote: > > On Wed, 2021-06-09 at 17:27 +0530, Amit Kapila wrote: > > 2. In the main patch [1], we do send two_phase option even during > > START_REPLICATION for the very first time when the two_phase can be > > enabled. There are reasons as described in the worker.c why we can't > > enable it during CREATE_REPLICATION_SLOT. > > I'll have to catch up on the thread to digest that reasoning and how it > applies to decoding vs. replication. But there don't seem to be changes > to START_REPLICATION for twophase, so I don't quite follow your point. > I think it is because we pass there as an option as I have suggested doing in the case of CREATE_REPLICATION_SLOT. > Are you saying that we should not be able to create slots with twophase > at all until the rest of the changes go in? > No, the slots will be created but two_phase option will be enabled only after the initial tablesync is complete. > > Now, if we want to do > > protocol changes, I wonder why only do some changes and leave the > > rest > > for the next version? > > I started this thread because it's possible to create a slot a certain > way using the SQL function create_logical_replication_slot(), but it's > impossible over the replication protocol. That seems inconsistent to > me. > Right, I understand that but on the protocol side, there are few more things to be considered to allow subscribers to enable two_phase. However, maybe, for now, we can do it just for create_replication_slot and the start_replication stuff required for subscribers can be done later. I was not completely sure if that is a good idea. -- With Regards, Amit Kapila.
Commits
-
Remove two_phase variable from CreateReplicationSlotCmd struct.
- be57f21650d3 14.0 landed
-
Add option to enable two_phase commits via pg_create_logical_replication_slot.
- 19890a064ebf 14.0 cited