From be6668d6eff6a03455b48fa8ce1a397ff5bae788 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas <heikki.linnakangas@iki.fi> Date: Sat, 26 Feb 2011 23:36:24 +0200 Subject: [PATCH] Increase the default for wal_sender_delay from 200ms to 1s. Now that WAL sender is immediately woken up by transaction commit, there's no need to wake up so aggressively. --- doc/src/sgml/config.sgml | 7 +++++-- src/backend/replication/walsender.c | 2 +- src/backend/utils/misc/guc.c | 2 +- src/backend/utils/misc/postgresql.conf.sample | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index cee09c76815..46ffbff1087 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1939,8 +1939,11 @@ SET ENABLE_SEQSCAN TO OFF; Specifies the delay between activity rounds for WAL sender processes. In each round the WAL sender sends any WAL accumulated since the last round to the standby server. It then sleeps for - <varname>wal_sender_delay</> milliseconds, and repeats. The default - value is 200 milliseconds (<literal>200ms</>). + <varname>wal_sender_delay</> milliseconds, and repeats. The sleep + is interrupted by transaction commit, so the effects of a committed + transaction are sent to standby servers as soon as the commit + happens, regardless of this setting. The default value is one second + (<literal>1s</>). Note that on many systems, the effective resolution of sleep delays is 10 milliseconds; setting <varname>wal_sender_delay</> to a value that is not a multiple of 10 might have the same results as setting it to diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index eb99246e6d2..49b49d2a181 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -73,7 +73,7 @@ bool am_walsender = false; /* Am I a walsender process ? */ /* User-settable parameters for walsender */ int max_wal_senders = 0; /* the maximum number of concurrent walsenders */ -int WalSndDelay = 200; /* max sleep time between some actions */ +int WalSndDelay = 1000; /* max sleep time between some actions */ /* * These variables are used similarly to openLogFile/Id/Seg/Off, diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 55cbf757b49..529148a0405 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1843,7 +1843,7 @@ static struct config_int ConfigureNamesInt[] = GUC_UNIT_MS }, &WalSndDelay, - 200, 1, 10000, NULL, NULL + 1000, 1, 10000, NULL, NULL }, { diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index 6726733235b..6bfd0fd87c9 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -188,7 +188,7 @@ #max_wal_senders = 0 # max number of walsender processes # (change requires restart) -#wal_sender_delay = 200ms # walsender cycle time, 1-10000 milliseconds +#wal_sender_delay = 1s # walsender cycle time, 1-10000 milliseconds #wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables #vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed -- GitLab