Re: replication_origin and replication_origin_lsn usage on subscriber - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: replication_origin and replication_origin_lsn usage on subscriber
Date
Msg-id CAA4eK1+WKHSLGqLiCXOP=1D1-5R3ko14XXU=L_CCkJgF-7vOXg@mail.gmail.com
Whole thread Raw
In response to Re: replication_origin and replication_origin_lsn usage on subscriber  (Petr Jelinek <petr@2ndquadrant.com>)
List pgsql-hackers
On Tue, Jul 14, 2020 at 2:47 PM Petr Jelinek <petr@2ndquadrant.com> wrote:
>
> Hi,
>
> On 14/07/2020 10:29, Amit Kapila wrote:
> > On Tue, Jul 14, 2020 at 12:05 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> >>
> >> On Tue, Jul 14, 2020 at 11:14 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >>>
> >>> On Tue, Jul 14, 2020 at 11:00 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> >>>>
> >>>> On Thu, Jul 9, 2020 at 6:55 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >>>>>
> >>>>> On Thu, Jul 9, 2020 at 6:14 PM Petr Jelinek <petr@2ndquadrant.com> wrote:
> >>>>>>
> >>>>>>
> >>>>>> If we were to support the origin forwarding, then strictly speaking we
> >>>>>> need everything only at commit time from correctness perspective,
> >>>>>>
> >>>>>
> >>>>> Okay.  Anyway streaming mode is optional, so in such cases, we can keep it 'off'
> >>>>>
> >>>>>> but
> >>>>>> ideally origin_id would be best sent with first message as it can be
> >>>>>> used to filter out changes at decoding stage rather than while we
> >>>>>> process the commit so having it set early improves performance of decoding.
> >>>>>>
> >>>>>
> >>>>> Yeah, makes sense.  So, we will just send origin_id (with first
> >>>>> streaming start message) and leave others.
> >>>>
> >>>> So IIUC, currently we are sending the latest origin_id which is set
> >>>> during the commit time.  So in our case, while we start streaming we
> >>>> will send the origin_id of the latest change in the current stream
> >>>> right?
> >>>>
> >>>
> >>> It has to be sent only once with the first start message not with
> >>> consecutive start messages.
> >>
> >> Okay,  so do you mean to say that with the first start message we send
> >> the origin_id of the latest change?
> >>
> >
> > Yes.
> >
> >>   because during the transaction
> >> lifetime, the origin id can be changed.
> >>
> >
> > Yeah, it could be changed but if we have to send again apart from with
> > the first message then it should be sent with each message.  So, I
> > think it is better to just send it once during the transaction as we
> > do it now (send with begin message).
> >
> >
>
> I am not sure if I can follow the discussion here very well, but if I
> understand correctly I'd like to clarify two things:
> - origin id does not change mid transaction as you can only have one per xid
>

As shown by Dilip, I don't think currently we have any way to prevent
this from changing during the transaction.

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Dilip Kumar
Date:
Subject: Re: replication_origin and replication_origin_lsn usage on subscriber
Next
From: Petr Jelinek
Date:
Subject: Re: replication_origin and replication_origin_lsn usage on subscriber