From 82b945c0979350c87ddc52adefe9f0a36dd5b4c8 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 22 Mar 2013 11:39:15 -0400 Subject: [PATCH] Update commit_delay documentation. Commit 13fe298ca06f5390df5edf073cf401f9f0b67458 changed this GUC to be PGC_SUSET, but neglected to update the documentation to match. While at it, edit and rearrange the text a little for clarity. --- doc/src/sgml/config.sgml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 95de86441e..6e1b084f71 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1949,7 +1949,7 @@ include 'filename' - commit_delay adds a time delay, set in + commit_delay adds a time delay, measured in microseconds, before a WAL flush is initiated. This can improve group commit throughput by allowing a larger number of transactions to commit via a single WAL flush, if system load is high enough @@ -1959,7 +1959,12 @@ include 'filename' flush. Because the delay is just wasted if no other transactions become ready to commit, a delay is only performed if at least commit_siblings other transactions are active - immediately before a flush would otherwise have been initiated. + when a flush is about to be initiated. Also, no delays are + performed if fsync is disabled. + The default commit_delay is zero (no delay). + Only superusers can change this setting. + + In PostgreSQL releases prior to 9.3, commit_delay behaved differently and was much less effective: it affected only commits, rather than all WAL flushes, @@ -1967,9 +1972,7 @@ include 'filename' was completed sooner. Beginning in PostgreSQL 9.3, the first process that becomes ready to flush waits for the configured interval, while subsequent processes wait only until the leader - completes the flush. The default commit_delay is zero - (no delay). No delays are performed unless fsync - is enabled. + completes the flush operation.