]> granicus.if.org Git - postgresql/commitdiff
Make GUC wal_sender_timeout user-settable
authorMichael Paquier <michael@paquier.xyz>
Sat, 22 Sep 2018 06:23:59 +0000 (15:23 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sat, 22 Sep 2018 06:23:59 +0000 (15:23 +0900)
Being able to use a value that can be changed on a connection basis is
useful with clusters distributed geographically, and makes failure
detection more flexible.  A note is added in the documentation about the
use of "options" in primary_conninfo, which can be hard to grasp for
newcomers with the need of two single quotes when listing a set of
parameters.

Author: Tsunakawa Takayuki
Reviewed-by: Masahiko Sawada, Michael Paquier
Discussion: https://postgr.es/m/0A3221C70F24FB45833433255569204D1FAAD3AE@G01JPEXMBYT05

doc/src/sgml/config.sgml
doc/src/sgml/high-availability.sgml
src/backend/utils/misc/guc.c

index e1073ac6d32777a8a1256182e04075736d92e6ae..f11b8f724cd6b7fc936cfaeedc400d403feadbf3 100644 (file)
@@ -3127,10 +3127,14 @@ include_dir 'conf.d'
         Terminate replication connections that are inactive longer
         than the specified number of milliseconds. This is useful for
         the sending server to detect a standby crash or network outage.
-        A value of zero disables the timeout mechanism.  This parameter
-        can only be set in
-        the <filename>postgresql.conf</filename> file or on the server command line.
-        The default value is 60 seconds.
+        A value of zero disables the timeout mechanism. The default value
+        is 60 seconds. With a cluster distributed across multiple geographic
+        locations, using different values per location brings more flexibility
+        in the cluster management. A smaller value is useful for faster
+        failure detection with a standby having a low-latency network
+        connection, and a larger value helps in judging better the health
+        of a standby if located on a remote location, with a high-latency
+        network connection.
        </para>
       </listitem>
      </varlistentry>
index 8cb77f85ec0fdb3ed023402d2db51820e62de66d..6f57362df7fee824f680c5fbb1aa22883e5de6f6 100644 (file)
@@ -738,7 +738,7 @@ protocol to make nodes agree on a serializable transactional order.
     A simple example of a <filename>recovery.conf</filename> is:
 <programlisting>
 standby_mode = 'on'
-primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass'
+primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass options=''-c wal_sender_timeout=5000'''
 restore_command = 'cp /path/to/archive/%f %p'
 archive_cleanup_command = 'pg_archivecleanup /path/to/archive %r'
 </programlisting>
index 77662aff7fa9c95ac7744f263a4c117bc1c40ded..e9f542cfedd84701297bb4daf7ac92fec2714a01 100644 (file)
@@ -2539,7 +2539,7 @@ static struct config_int ConfigureNamesInt[] =
        },
 
        {
-               {"wal_sender_timeout", PGC_SIGHUP, REPLICATION_SENDING,
+               {"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
                        gettext_noop("Sets the maximum time to wait for WAL replication."),
                        NULL,
                        GUC_UNIT_MS