Change default commit_delay to zero, update documentation.

This commit is contained in:
Tom Lane 2001-02-18 04:50:43 +00:00
parent 33cc5d8a4d
commit 57e0847180
4 changed files with 24 additions and 16 deletions

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/wal.sgml,v 1.1 2001/01/24 23:15:19 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/wal.sgml,v 1.2 2001/02/18 04:50:43 tgl Exp $ -->
<chapter id="wal"> <chapter id="wal">
<title>Write-Ahead Logging (<acronym>WAL</acronym>)</title> <title>Write-Ahead Logging (<acronym>WAL</acronym>)</title>
@ -290,15 +290,15 @@
</para> </para>
<para> <para>
The <varname>COMMIT_DELAY</varname> parameter defines for how long The <varname>COMMIT_DELAY</varname> parameter defines for how many
the backend will be forced to sleep after writing a commit record microseconds the backend will sleep after writing a commit
to the log with <function>LogInsert</function> call but before record to the log with <function>LogInsert</function> but before
performing a <function>LogFlush</function>. This delay allows other performing a <function>LogFlush</function>. This delay allows other
backends to add their commit records to the log so as to have all backends to add their commit records to the log so as to have all
of them flushed with a single log sync. Unfortunately, this of them flushed with a single log sync. Unfortunately, this
mechanism is not fully implemented at release 7.1, so there is at mechanism is not fully implemented at release 7.1, so there is at
present no point in changing this parameter from its default value present usually no benefit to be gained from increasing this parameter
of 5 microseconds. above its default value of zero.
</para> </para>
</sect1> </sect1>
</chapter> </chapter>

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.96 2001/01/24 19:42:51 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.97 2001/02/18 04:50:43 tgl Exp $
* *
* NOTES * NOTES
* Transaction aborts can now occur two ways: * Transaction aborts can now occur two ways:
@ -221,7 +221,7 @@ int XactIsoLevel;
#include "access/xlogutils.h" #include "access/xlogutils.h"
int CommitDelay = 5; /* 1/200000 sec */ int CommitDelay = 0; /* in microseconds */
static void (*_RollbackFunc)(void*) = NULL; static void (*_RollbackFunc)(void*) = NULL;
static void *_RollbackData = NULL; static void *_RollbackData = NULL;
@ -667,7 +667,6 @@ RecordTransactionCommit()
{ {
XLogRecData rdata; XLogRecData rdata;
xl_xact_commit xlrec; xl_xact_commit xlrec;
struct timeval delay;
XLogRecPtr recptr; XLogRecPtr recptr;
BufmgrCommit(); BufmgrCommit();
@ -686,11 +685,20 @@ RecordTransactionCommit()
/* /*
* Sleep before commit! So we can flush more than one * Sleep before commit! So we can flush more than one
* commit records per single fsync. * commit records per single fsync. (The idea is some other
* backend may do the XLogFlush while we're sleeping. This
* needs work however, because on most Unixen, the minimum
* select() delay is 10msec or more, which is way too long.)
*/ */
delay.tv_sec = 0; if (CommitDelay > 0)
delay.tv_usec = CommitDelay; {
(void) select(0, NULL, NULL, NULL, &delay); struct timeval delay;
delay.tv_sec = 0;
delay.tv_usec = CommitDelay;
(void) select(0, NULL, NULL, NULL, &delay);
}
XLogFlush(recptr); XLogFlush(recptr);
MyLastRecPtr.xrecoff = 0; MyLastRecPtr.xrecoff = 0;

View File

@ -4,7 +4,7 @@
* Support for grand unified configuration scheme, including SET * Support for grand unified configuration scheme, including SET
* command, configuration file, and command line options. * command, configuration file, and command line options.
* *
* $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.29 2001/02/07 23:36:22 vadim Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.30 2001/02/18 04:50:43 tgl Exp $
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* Written by Peter Eisentraut <peter_e@gmx.net>. * Written by Peter Eisentraut <peter_e@gmx.net>.
@ -291,7 +291,7 @@ ConfigureNamesInt[] =
0, 0, 16}, 0, 0, 16},
{"commit_delay", PGC_USERSET, &CommitDelay, {"commit_delay", PGC_USERSET, &CommitDelay,
5, 0, 1000}, 0, 0, 100000},
{NULL, 0, NULL, 0, 0, 0} {NULL, 0, NULL, 0, 0, 0}
}; };

View File

@ -108,7 +108,7 @@
#wal_buffers = 8 # min 4 #wal_buffers = 8 # min 4
#wal_files = 0 # range 0-64 #wal_files = 0 # range 0-64
#wal_debug = 0 # range 0-16 #wal_debug = 0 # range 0-16
#commit_delay = 5 # range 0-1000 #commit_delay = 0 # range 0-100000
#checkpoint_timeout = 300 # range 30-1800 #checkpoint_timeout = 300 # range 30-1800