From: | Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | Greg Nancarrow <gregn4422(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com>, "osumi(dot)takamichi(at)fujitsu(dot)com" <osumi(dot)takamichi(at)fujitsu(dot)com>, Alexey Lesovsky <lesovsky(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Skipping logical replication transactions on subscriber side |
Date: | 2021-10-29 00:47:27 |
Message-ID: | CAD21AoC7EvpVGFuuRbnS2dQGK3Z3egq8Le+hOYdf7C3vM5-P5A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Oct 28, 2021 at 6:34 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>
> On Thu, Oct 28, 2021 at 10:56 AM Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> wrote:
> >
> > On Thu, Oct 28, 2021 at 1:29 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > >
> > > On Wed, Oct 27, 2021 at 4:07 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > > >
> > > > On Wed, Oct 27, 2021 at 8:32 AM Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> wrote:
> > > > >
> > > > > On Tue, Oct 26, 2021 at 7:29 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > > > > >
> > > > > > You have a point. The other alternatives on this line could be:
> > > > > >
> > > > > > Alter Subscription <sub_name> SKIP ( subscription_parameter [=value] [, ... ] );
> > > > > >
> > > > > > where subscription_parameter can be one of:
> > > > > > xid = <xid_val>
> > > > > > lsn = <lsn_val>
> > > > > > ...
> > > > >
> > > > > Looks better.
> > > > >
> > > >
> > > > If we want to follow the above, then how do we allow users to reset
> > > > the parameter? One way is to allow the user to set xid as 0 which
> > > > would mean that we reset it. The other way is to allow SET/RESET
> > > > before SKIP but not sure if that is a good option.
> > > >
> > >
> > > After thinking some more on this, I think it is better to not use
> > > SET/RESET keyword here. I think we can use a model similar to how we
> > > allow setting some of the options in Alter Database:
> > >
> > > # Set the connection limit for a database:
> > > Alter Database akapila WITH connection_limit = 1;
> > > # Reset the connection limit
> > > Alter Database akapila WITH connection_limit = -1;
> > >
> > > Thoughts?
> >
> > Agreed.
> >
> > Another thing I'm concerned is that the syntax "SKIP (
> > subscription_parameter [=value] [, ...])" looks like we can specify
> > multiple options for example, "SKIP (xid = '100', lsn =
> > '0/12345678’)”. Is there a case where we need to specify multiple
> > options? Perhaps when specifying the target XID and operations for
> > example, “SKIP (xid = 100, action = ‘insert, update’)”?
> >
>
> Yeah, or maybe prepared transaction identifier and actions.
Prepared transactions seem not to need to be skipped since those
changes are already successfully applied, though.
> BTW, if we
> want to proceed without the SET/RESET keyword then you can prepare the
> SKIP xid patch as the second in the series and we can probably work on
> the RESET syntax as a completely independent patch.
Right. If we do that, the second patch can be an independent patch.
Regards,
--
Masahiko Sawada
EDB: https://www.enterprisedb.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Kyotaro Horiguchi | 2021-10-29 01:26:29 | Re: ThisTimeLineID is used uninitialized in basebackup.c, too |
Previous Message | Robert Haas | 2021-10-29 00:44:21 | Re: Minimal logical decoding on standbys |