aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorAmit Kapila <akapila@postgresql.org>2025-02-26 11:12:50 +0530
committerAmit Kapila <akapila@postgresql.org>2025-02-26 11:12:50 +0530
commite117cfb2f6c67fe4ba46720bc6917da3dbd48c10 (patch)
treeebe5e19afdf9b40a2f0ebe68b980e261476384aa /doc/src
parentadc6032fa8824e7653252b02abc6a59d8b9d01a6 (diff)
downloadpostgresql-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.sgml18
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