RE: logical replication empty transactions

Поиск
Список
Период
Сортировка
Искать
От
houzj.fnst@fujitsu.com
Тема
RE: logical replication empty transactions
Дата
Msg-id
OS0PR01MB5716528FE2545F2F457B808B94179@OS0PR01MB5716.jpnprd01.prod.outlook.com
Ответ на
Список
Дерево обсуждения
logical replication empty transactions Jeff Janes <jeff.janes@gmail.com>
Re: logical replication empty transactions Euler Taveira <euler@timbira.com.br>
Re: logical replication empty transactions Dilip Kumar <dilipbalaut@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Dilip Kumar <dilipbalaut@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Dilip Kumar <dilipbalaut@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Euler Taveira <euler.taveira@2ndquadrant.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Dilip Kumar <dilipbalaut@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Dilip Kumar <dilipbalaut@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Dilip Kumar <dilipbalaut@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Euler Taveira <euler.taveira@2ndquadrant.com>
Re: logical replication empty transactions Craig Ringer <craig@2ndquadrant.com>
Re: logical replication empty transactions Andres Freund <andres@anarazel.de>
Re: logical replication empty transactions Craig Ringer <craig@2ndquadrant.com>
Re: logical replication empty transactions Rahila Syed <rahila.syed@2ndquadrant.com>
Re: logical replication empty transactions Michael Paquier <michael@paquier.xyz>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions vignesh C <vignesh21@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
RE: logical replication empty transactions "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
RE: logical replication empty transactions "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
RE: logical replication empty transactions "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
RE: logical replication empty transactions "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
RE: logical replication empty transactions "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
RE: logical replication empty transactions "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
RE: logical replication empty transactions "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
RE: logical replication empty transactions "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
RE: logical replication empty transactions "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
RE: logical replication empty transactions "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
RE: logical replication empty transactions "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
Re: logical replication empty transactions Masahiko Sawada <sawada.mshk@gmail.com>
RE: logical replication empty transactions "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
RE: logical replication empty transactions "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
Re: logical replication empty transactions Masahiko Sawada <sawada.mshk@gmail.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
RE: logical replication empty transactions "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>
RE: logical replication empty transactions "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>
RE: logical replication empty transactions "wangw.fnst@fujitsu.com" <wangw.fnst@fujitsu.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
RE: logical replication empty transactions "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
RE: logical replication empty transactions "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
RE: logical replication empty transactions "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Re: logical replication empty transactions Amit Kapila <amit.kapila16@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
RE: logical replication empty transactions "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Greg Nancarrow <gregn4422@gmail.com>
RE: logical replication empty transactions "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Re: logical replication empty transactions Greg Nancarrow <gregn4422@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Peter Smith <smithpb2250@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Ajin Cherian <itsajin@gmail.com>
Re: logical replication empty transactions Jeff Janes <jeff.janes@gmail.com>
> On Monday, March 21, 2022 6:01 PM Amit Kapila 
> wrote:
> >
> > On Sat, Mar 19, 2022 at 9:10 AM Ajin Cherian  wrote:
> > >
> > > On Thu, Mar 17, 2022 at 10:43 PM Amit Kapila
> > > 
> > wrote:
> > >
> > > > 3. Can we add a simple test for it in one of the existing test
> > > > files(say in 001_rep_changes.pl)?
> > >
> > > added a simple test.
> > >
> >
> > This doesn't verify if the transaction is skipped. I think we should
> > extend this test to check for a DEBUG message in the Logs (you need to
> > probably set log_min_messages to DEBUG1 for this test). As an example,
> > you can check the patch [1]. Also, it seems by mistake you have added
> > wait_for_catchup() twice.
> 
> I added a testcase to check the DEBUG message.
> 
> > Few other comments:
> > =================
> > 1. Let's keep the parameter name as skipped_empty_xact in
> > OutputPluginUpdateProgress so as to not confuse with the other patch's
> > [2] keep_alive parameter. I think in this case we must send the
> > keep_alive message so as to not make the syncrep wait whereas in the
> > other patch we only need to send it periodically based on
> > wal_sender_timeout parameter.
> > 2. The new function SyncRepEnabled() seems confusing to me as the
> > comments in SyncRepWaitForLSN() clearly state why we need to first
> > read the parameter 'sync_standbys_defined' without any lock then read
> > it again with a lock if the parameter is true. So, I just put that
> > check back and also added a similar check in WalSndUpdateProgress.
> > 3.
> > @@ -1392,11 +1481,21 @@ pgoutput_truncate(LogicalDecodingContext *ctx,
> > ReorderBufferTXN *txn,
> >   continue;
> >
> >   relids[nrelids++] = relid;
> > +
> > + /* Send BEGIN if we haven't yet */
> > + if (txndata && !txndata->sent_begin_txn) pgoutput_send_begin(ctx,
> > + txn);
> >   maybe_send_schema(ctx, change, relation, relentry);
> >   }
> >
> >   if (nrelids > 0)
> >   {
> > + txndata = (PGOutputTxnData *) txn->output_plugin_private;
> > +
> > + /* Send BEGIN if we haven't yet */
> > + if (txndata && !txndata->sent_begin_txn) pgoutput_send_begin(ctx,
> > + txn);
> > +
> >
> > Why do we need to try sending the begin in the second check? I think
> > it should be sufficient to do it in the above loop.
> >
> > I have made these and a number of other changes in the attached patch.
> > Do let me know what you think of the attached?
> 
> The changes look good to me.
> And I did some basic tests for the patch and didn’t find some other problems.
> 
> Attach the new version patch.

Oh, sorry, I posted the wrong patch, here is the correct one.

Best regards,
Hou zj
В списке pgsql-hackers по дате отправления
От: Andres Freund
Дата:
От: wangw.fnst@fujitsu.com
Дата:
FAQ