*** a/doc/src/sgml/config.sgml
--- b/doc/src/sgml/config.sgml
***************
*** 1909,1934 **** SET ENABLE_SEQSCAN TO OFF;
-
- wal_sender_delay (integer)
-
- wal_sender_delay> configuration parameter
-
-
-
- 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
- wal_sender_delay> milliseconds, and repeats. The default
- value is 200 milliseconds (200ms>).
- Note that on many systems, the effective resolution of sleep delays is
- 10 milliseconds; setting wal_sender_delay> to a value that
- is not a multiple of 10 might have the same results as setting it to
- the next higher multiple of 10. This parameter can only be set in the
- postgresql.conf> file or on the server command line.
-
-
-
wal_keep_segments (integer)
--- 1909,1914 ----
*** a/src/backend/replication/walsender.c
--- b/src/backend/replication/walsender.c
***************
*** 65,71 **** 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 */
/*
* These variables are used similarly to openLogFile/Id/Seg/Off,
--- 65,70 ----
***************
*** 77,82 **** static uint32 sendSeg = 0;
--- 76,89 ----
static uint32 sendOff = 0;
/*
+ * The delay between activity rounds for walsender. In each round
+ * walsender sends any WAL accumulated since the last round to the
+ * standby server. It then sleeps for 10000000 microseconds (10s),
+ * and repeats.
+ */
+ #define WAL_SENDER_DELAY 10000000
+
+ /*
* How far have we sent WAL already? This is also advertised in
* MyWalSnd->sentPtr. (Actually, this is the next WAL location to send.)
*/
***************
*** 444,458 **** WalSndLoop(void)
break;
if (caughtup && !got_SIGHUP && !ready_to_stop && !shutdown_requested)
{
- /*
- * XXX: We don't really need the periodic wakeups anymore,
- * WaitLatchOrSocket should reliably wake up as soon as
- * something interesting happens.
- */
-
/* Sleep */
WaitLatchOrSocket(&MyWalSnd->latch, MyProcPort->sock,
! WalSndDelay * 1000L);
}
/* Check if the connection was closed */
--- 451,459 ----
break;
if (caughtup && !got_SIGHUP && !ready_to_stop && !shutdown_requested)
{
/* Sleep */
WaitLatchOrSocket(&MyWalSnd->latch, MyProcPort->sock,
! WAL_SENDER_DELAY);
}
/* Check if the connection was closed */
*** a/src/backend/utils/misc/guc.c
--- b/src/backend/utils/misc/guc.c
***************
*** 1790,1805 **** static struct config_int ConfigureNamesInt[] =
},
{
- {"wal_sender_delay", PGC_SIGHUP, WAL_REPLICATION,
- gettext_noop("WAL sender sleep time between WAL replications."),
- NULL,
- GUC_UNIT_MS
- },
- &WalSndDelay,
- 200, 1, 10000, NULL, NULL
- },
-
- {
{"commit_delay", PGC_USERSET, WAL_SETTINGS,
gettext_noop("Sets the delay in microseconds between transaction commit and "
"flushing WAL to disk."),
--- 1790,1795 ----
*** a/src/backend/utils/misc/postgresql.conf.sample
--- b/src/backend/utils/misc/postgresql.conf.sample
***************
*** 188,194 ****
#max_wal_senders = 0 # max number of walsender processes
# (change requires restart)
- #wal_sender_delay = 200ms # 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
--- 188,193 ----
*** a/src/include/replication/walsender.h
--- b/src/include/replication/walsender.h
***************
*** 45,51 **** extern WalSndCtlData *WalSndCtl;
extern bool am_walsender;
/* user-settable parameters */
- extern int WalSndDelay;
extern int max_wal_senders;
extern int WalSenderMain(void);
--- 45,50 ----