Re: locking [user] catalog tables vs 2pc vs logical rep

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: "osumi(dot)takamichi(at)fujitsu(dot)com" <osumi(dot)takamichi(at)fujitsu(dot)com>
Cc: vignesh C <vignesh21(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Markus Wanner <markus(dot)wanner(at)enterprisedb(dot)com>
Subject: Re: locking [user] catalog tables vs 2pc vs logical rep
Date: 2021-06-17 10:57:24
Message-ID: CAA4eK1+co4hRncuXHx1=46DeqkbyYvJAp9BoiZoC7i=geRcsGw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Jun 17, 2021 at 8:41 AM osumi(dot)takamichi(at)fujitsu(dot)com
<osumi(dot)takamichi(at)fujitsu(dot)com> wrote:
>
> On Wednesday, June 16, 2021 7:21 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > On Mon, Jun 14, 2021 at 5:33 PM osumi(dot)takamichi(at)fujitsu(dot)com
> > <osumi(dot)takamichi(at)fujitsu(dot)com> wrote:
> > >
> > > On Friday, June 11, 2021 2:13 PM vignesh C <vignesh21(at)gmail(dot)com>
> > wrote:
> > >
> > > Attached the patch-set that addressed those two comments.
> > >
> >
> > Few minor comments:
> > 1.
> > + <listitem>
> > + <para>
> > + Clustering <structname>pg_class</structname> in a transaction.
> >
> > Can we change above to: Perform <command>CLUSTER</command> on
> > <structname>pg_class</structname> in a transaction.
> Looks better.
>
> >
> > 2.
> > + <listitem>
> > + <para>
> > + Executing <command>TRUNCATE</command> on user catalog
> > table
> > in a transaction.
> > + </para>
> >
> > Square brackets are missing for user.
> Thanks for catching it. You are right.
>
>
> > 3.
> > + <indexterm>
> > + <primary>Overview</primary>
> > + </indexterm>
> > ..
> > ..
> > + <indexterm>
> > + <primary>Caveats</primary>
> > + </indexterm>
> >
> > Why are these required when we already have titles? I have seen other places
> > in the docs where we use titles for Overview and Caveats but they didn't have
> > similar usage.
> Sorry, this was a mistake. We didn't need those sections.
>
>
> > 4.
> > <para>
> > + Performing <command>PREPARE TRANSACTION</command>
> > after
> > <command>LOCK</command>
> > + command on <structname>pg_class</structname> and logical
> > decoding of published
> > + table.
> >
> > Can we change above to: <command>PREPARE
> > TRANSACTION</command> after <command>LOCK</command>
> > command on <structname>pg_class</structname> and allow logical
> > decoding of two-phase transactions.
> >
> > 5.
> > + <para>
> > + Clustering <structname>pg_trigger</structname> and decoding
> > <command>PREPARE
> > + TRANSACTION</command>, if any published table have a trigger
> > and any
> > + operations that will be decoded are conducted.
> > + </para>
> >
> > Can we change above to: <command>PREPARE
> > TRANSACTION</command> after <command>CLUSTER</command>
> > command on <structname>pg_trigger</structname> and allow logical
> > decoding of two-phase transactions. This will lead to deadlock only when
> > published table have a trigger.
> Yeah, I needed the nuance to turn on logical decoding of two-phase transactions...
> Your above suggestions are much tidier and more accurate than mine.
> I agree with your all suggestions.
>

Pushed!

--
With Regards,
Amit Kapila.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nitin Jadhav 2021-06-17 11:27:08 Re: when the startup process doesn't
Previous Message osumi.takamichi@fujitsu.com 2021-06-17 10:39:32 RE: Fix for segfault in logical replication on master