diff options
author | Amit Kapila <akapila@postgresql.org> | 2025-02-26 11:12:50 +0530 |
---|---|---|
committer | Amit Kapila <akapila@postgresql.org> | 2025-02-26 11:12:50 +0530 |
commit | e117cfb2f6c67fe4ba46720bc6917da3dbd48c10 (patch) | |
tree | ebe5e19afdf9b40a2f0ebe68b980e261476384aa /doc/src | |
parent | adc6032fa8824e7653252b02abc6a59d8b9d01a6 (diff) | |
download | postgresql-e117cfb2f6c67fe4ba46720bc6917da3dbd48c10.tar.gz postgresql-e117cfb2f6c67fe4ba46720bc6917da3dbd48c10.zip |
Add two-phase option in pg_createsubscriber.
This patch introduces the '--enable-two-phase' option to the
'pg_createsubscriber' utility, allowing users to enable two-phase commit
for all subscriptions during their creation.
Note that even without this option users can enable the two_phase option
for the subscriptions created by pg_createsubscriber. However, it requires
the subscription to be disabled first which could be inconvenient for
users.
When two-phase commit is enabled, prepared transactions are sent to the
subscriber at the time of 'PREPARE TRANSACTION', and they are processed as
two-phase transactions on the subscriber as well. If disabled, prepared
transactions are sent only when committed and are processed immediately by
the subscriber.
Author: Shubham Khanna <khannashubham1197@gmail.com>
Reviewed-by: vignesh C <vignesh21@gmail.com>
Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Peter Smith <smithpb2250@gmail.com>
Reviewed-by: Ajin Cherian <itsajin@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Discussion: https://postgr.es/m/CAHv8RjLPdFP=kA5LNSmWZ=+GMXmO+LczvV6p9HJjsXxZz10KGA@mail.gmail.com
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/ref/pg_createsubscriber.sgml | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/doc/src/sgml/ref/pg_createsubscriber.sgml b/doc/src/sgml/ref/pg_createsubscriber.sgml index d56487fe2ca..65caa3f5095 100644 --- a/doc/src/sgml/ref/pg_createsubscriber.sgml +++ b/doc/src/sgml/ref/pg_createsubscriber.sgml @@ -166,6 +166,19 @@ PostgreSQL documentation </varlistentry> <varlistentry> + <term><option>-T</option></term> + <term><option>--enable-two-phase</option></term> + <listitem> + <para> + Enables <link linkend="sql-createsubscription-params-with-two-phase"><literal>two_phase</literal></link> + commit for the subscription. When multiple databases are specified, this + option applies uniformly to all subscriptions created on those databases. + The default is <literal>false</literal>. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><option>-U <replaceable class="parameter">username</replaceable></option></term> <term><option>--subscriber-username=<replaceable class="parameter">username</replaceable></option></term> <listitem> @@ -300,7 +313,9 @@ PostgreSQL documentation greater than or equal to the number of specified databases. The target server must have <xref linkend="guc-max-worker-processes"/> configured to a value greater than the number of specified databases. The target server - must accept local connections. + must accept local connections. If you are planning to use the + <option>--enable-two-phase</option> switch then you will also need to set + the <xref linkend="guc-max-prepared-transactions"/> appropriately. </para> <para> @@ -360,6 +375,7 @@ PostgreSQL documentation </para> <para> + Unless the <option>--enable-two-phase</option> switch is specified, <application>pg_createsubscriber</application> sets up logical replication with two-phase commit disabled. This means that any prepared transactions will be replicated at the time |