Re: replication_origin and replication_origin_lsn usage on subscriber
От | Petr Jelinek |
---|---|
Тема | Re: replication_origin and replication_origin_lsn usage on subscriber |
Дата | |
Msg-id | bc31485c-ec9b-7745-7e20-ace4c391aab1@2ndquadrant.com обсуждение исходный текст |
Ответ на | Re: replication_origin and replication_origin_lsn usage on subscriber (Amit Kapila <amit.kapila16@gmail.com>) |
Ответы |
Re: replication_origin and replication_origin_lsn usage on subscriber
Re: replication_origin and replication_origin_lsn usage on subscriber |
Список | pgsql-hackers |
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 - until we have origin forwarding feature, the origin id is always same for a given subscription -- Petr Jelinek 2ndQuadrant - PostgreSQL Solutions for the Enterprise https://www.2ndQuadrant.com/
В списке pgsql-hackers по дате отправления: