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

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Cc: vignesh C <vignesh21@gmail.com>, 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-16T10:20:57Z
Lists: pgsql-hackers
On Mon, Jun 14, 2021 at 5:33 PM osumi.takamichi@fujitsu.com
<osumi.takamichi@fujitsu.com> wrote:
>
> On  Friday, June 11, 2021 2:13 PM  vignesh C <vignesh21@gmail.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.

2.
+      <listitem>
+       <para>
+        Executing <command>TRUNCATE</command> on user catalog table
in a transaction.
+       </para>

Square brackets are missing for user.

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.


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.

-- 
With Regards,
Amit Kapila.



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.