diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2012-10-11 17:39:52 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2012-10-11 17:48:08 +0300 |
commit | 6f60fdd7015b032bf49273c99f80913d57eac284 (patch) | |
tree | ef9a5602c01617665815503a45dc1ea3b379e757 /src/backend/utils/misc | |
parent | 8521d131941be5a177270bc428fa8e684cd645b5 (diff) | |
download | postgresql-6f60fdd7015b032bf49273c99f80913d57eac284.tar.gz postgresql-6f60fdd7015b032bf49273c99f80913d57eac284.zip |
Improve replication connection timeouts.
Rename replication_timeout to wal_sender_timeout, and add a new setting
called wal_receiver_timeout that does the same at the walreceiver side.
There was previously no timeout in walreceiver, so if the network went down,
for example, the walreceiver could take a long time to notice that the
connection was lost. Now with the two settings, both sides of a replication
connection will detect a broken connection similarly.
It is no longer necessary to manually set wal_receiver_status_interval to
a value smaller than the timeout. Both wal sender and receiver now
automatically send a "ping" message if more than 1/2 of the configured
timeout has elapsed, and it hasn't received any messages from the other end.
Amit Kapila, heavily edited by me.
Diffstat (limited to 'src/backend/utils/misc')
-rw-r--r-- | src/backend/utils/misc/guc.c | 15 | ||||
-rw-r--r-- | src/backend/utils/misc/postgresql.conf.sample | 5 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 6b202e04256..745e7be68e4 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1596,6 +1596,17 @@ static struct config_int ConfigureNamesInt[] = }, { + {"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY, + gettext_noop("Sets the maximum wait time to receive data from master."), + NULL, + GUC_UNIT_MS + }, + &wal_receiver_timeout, + 60 * 1000, 0, INT_MAX, + NULL, NULL, NULL + }, + + { {"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS, gettext_noop("Sets the maximum number of concurrent connections."), NULL @@ -2019,12 +2030,12 @@ static struct config_int ConfigureNamesInt[] = }, { - {"replication_timeout", PGC_SIGHUP, REPLICATION_SENDING, + {"wal_sender_timeout", PGC_SIGHUP, REPLICATION_SENDING, gettext_noop("Sets the maximum time to wait for WAL replication."), NULL, GUC_UNIT_MS }, - &replication_timeout, + &wal_sender_timeout, 60 * 1000, 0, INT_MAX, NULL, NULL, NULL }, diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index 10f3fb1b247..eeb9b82abf1 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -210,7 +210,7 @@ #max_wal_senders = 0 # max number of walsender processes # (change requires restart) #wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables -#replication_timeout = 60s # in milliseconds; 0 disables +#wal_sender_timeout = 60s # in milliseconds; 0 disables # - Master Server - @@ -237,6 +237,9 @@ # 0 disables #hot_standby_feedback = off # send info from standby to prevent # query conflicts +#wal_receiver_timeout = 60s # time that receiver waits for + # communication from master + # in milliseconds; 0 disables #------------------------------------------------------------------------------ |