Re: [HACKERS] logical decoding of two-phase transactions - Mailing list pgsql-hackers

From Ajin Cherian
Subject Re: [HACKERS] logical decoding of two-phase transactions
Date
Msg-id CAFPTHDb+Ph1rx7nQHJHTyFEYtNENPEo9s5ku760Uo3j9g3-rfQ@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] logical decoding of two-phase transactions  (vignesh C <vignesh21@gmail.com>)
Responses Re: [HACKERS] logical decoding of two-phase transactions
List pgsql-hackers
On Wed, Jun 23, 2021 at 3:18 PM vignesh C <vignesh21@gmail.com> wrote:

> Thanks for the updated patch.
> The patch v89-0001-Add-option-to-set-two-phase-in-CREATE_REPLICATIO.patch
> has the following:
> +       <term><literal>TWO_PHASE</literal></term>
> +       <listitem>
> +        <para>
> +         Specify that this logical replication slot supports decoding
> of two-phase
> +         transactions. With this option, two-phase commands like
> +         <literal>PREPARE TRANSACTION</literal>, <literal>COMMIT
> PREPARED</literal>
> +         and <literal>ROLLBACK PREPARED</literal> are decoded and transmitted.
> +         The transaction will be decoded and transmitted at
> +         <literal>PREPARE TRANSACTION</literal> time.
> +        </para>
> +       </listitem>
> +      </varlistentry>
>
> The patch v89-0003-Add-support-for-prepared-transactions-to-built-i.patch
> has the following:
> +       <term><literal>TWO_PHASE</literal></term>
> +       <listitem>
> +        <para>
> +         Specify that this replication slot supports decode of two-phase
> +         transactions. With this option, two-phase commands like
> +         <literal>PREPARE TRANSACTION</literal>, <literal>COMMIT
> PREPARED</literal>
> +         and <literal>ROLLBACK PREPARED</literal> are decoded and transmitted.
> +         The transaction will be decoded and transmitted at
> +         <literal>PREPARE TRANSACTION</literal> time.
> +        </para>
> +       </listitem>
> +      </varlistentry>
>
> We can remove one of them.

I missed this. Updated.

Also fixed this comment below which I had missed in my last patch:

>4) You could mention "Before you use two-phase commit commands, you
>must set max_prepared_transactions to at least 1" for example 2.
> $ pg_recvlogical -d postgres --slot=test --drop-slot
>+
>+$ pg_recvlogical -d postgres --slot=test --create-slot --two-phase
>+$ pg_recvlogical -d postgres --slot=test --start -f -

Comment 6:
>6)  This should be before verbose, the options are printed alphabetically
>       printf(_("  -v, --verbose          output verbose messages\n"));
>+       printf(_("  -t, --two-phase        enable two-phase decoding
>when creating a slot\n"));
>        printf(_("  -V, --version          output version information,
>then exit\n"));

This was also fixed in the last patch.

regards,
Ajin Cherian
Fujitsu Australia

Attachment

pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: pgbench logging broken by time logic changes
Next
From: Boris Kolpackov
Date:
Subject: Re: Pipeline mode and PQpipelineSync()