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

Takamichi Osumi (Fujitsu) <osumi.takamichi@fujitsu.com>

From: "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
To: 'Amit Kapila' <amit.kapila16@gmail.com>, vignesh C <vignesh21@gmail.com>
Cc: Peter Smith <smithpb2250@gmail.com>, Andres Freund <andres@anarazel.de>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Markus Wanner <markus.wanner@enterprisedb.com>
Date: 2021-06-09T06:33:14Z
Lists: pgsql-hackers
On Wednesday, June 9, 2021 12:06 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> On Tue, Jun 8, 2021 at 6:24 PM vignesh C <vignesh21@gmail.com> wrote:
> >
> > Thanks for the updated patch.
> >
> > I have few comments:
> > 1) Should we list the actual system tables like pg_class,pg_trigger,
> > etc instead of any other catalog table?
> > User has issued an explicit LOCK on pg_class (or any other catalog
> > table)
> >
> 
> I think the way it is mentioned is okay. We don't need to specify other catalog
> tables.
Okay.


> > 2) Here This means deadlock, after this we mention deadlock again for
> > each of the examples, we can remove it if redundant.
> > This can happen in the following ways:
I think this sentence works to notify that commands described below
are major scenarios naturally, to the readers. Then, I don't want to remove it.

If you somehow feel that the descriptions are redundant,
how about unifying all listitems as nouns. like below ?

* An explicit <command>LOCK</command> on <structname>pg_class</structname> (or any other catalog table) in a transaction
* Reordering <structname>pg_class</structname> by <command>CLUSTER</command> command in a transaction
* Executing <command>TRUNCATE</command> on user_catalog_table


> > 3) Should [user] catalog tables be catalog tables or user catalog
> > tables [user] catalog tables
> >
> 
> The third point is not clear. Can you please elaborate by quoting the exact
> change from the patch?
IIUC, he means to replace all descriptions "[user] catalog tables"
with "catalog tables or user catalog tables" in the patch,
because seemingly we don't use square brackets to describe optional clause in
normal descriptions(like outside of synopsis and I don't find any example for this).
But, even if so, I would like to keep the current square brackets description,
which makes sentence short and simple.


Best Regards,
	Takamichi Osumi

Commits

  1. Doc: Update caveats in synchronous logical replication.

  2. Document a few caveats in synchronous logical replication.

  3. Update the docs and comments for decoding of prepared xacts.

  4. Allow decoding at prepare time in ReorderBuffer.

  5. Documentation for logical decoding.