aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-02-26 00:50:08 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-02-26 00:50:08 +0000
commit9c9936587c6a9aeb8b425a499cf73e5e7af38ddd (patch)
treef1d7328907a9ffb8a9319b689a9bb40f7e1d0313 /doc/src
parent60774e821060dd6d6395504d4ccda107d2a71a42 (diff)
downloadpostgresql-9c9936587c6a9aeb8b425a499cf73e5e7af38ddd.tar.gz
postgresql-9c9936587c6a9aeb8b425a499cf73e5e7af38ddd.zip
Implement COMMIT_SIBLINGS parameter to allow pre-commit delay to occur
only if at least N other backends currently have open transactions. This is not a great deal of intelligence about whether a delay might be profitable ... but it beats no intelligence at all. Note that the default COMMIT_DELAY is still zero --- this new code does nothing unless that setting is changed. Also, mark ENABLEFSYNC as a system-wide setting. It's no longer safe to allow that to be set per-backend, since we may be relying on some other backend's fsync to have synced the WAL log.
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/wal.sgml13
1 files changed, 8 insertions, 5 deletions
diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml
index 00f0c459ace..e706ee271c6 100644
--- a/doc/src/sgml/wal.sgml
+++ b/doc/src/sgml/wal.sgml
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/wal.sgml,v 1.2 2001/02/18 04:50:43 tgl Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/wal.sgml,v 1.3 2001/02/26 00:50:07 tgl Exp $ -->
<chapter id="wal">
<title>Write-Ahead Logging (<acronym>WAL</acronym>)</title>
@@ -295,10 +295,13 @@
record to the log with <function>LogInsert</function> but before
performing a <function>LogFlush</function>. This delay allows other
backends to add their commit records to the log so as to have all
- of them flushed with a single log sync. Unfortunately, this
- mechanism is not fully implemented at release 7.1, so there is at
- present usually no benefit to be gained from increasing this parameter
- above its default value of zero.
+ of them flushed with a single log sync. No sleep will occur if fsync
+ is not enabled or if fewer than <varname>COMMIT_SIBLINGS</varname>
+ other backends are not currently in active transactions; this avoids
+ sleeping when it's unlikely that any other backend will commit soon.
+ Note that on most platforms, the resolution of a sleep request is
+ ten milliseconds, so that any nonzero <varname>COMMIT_DELAY</varname>
+ setting between 1 and 10000 microseconds will have the same effect.
</para>
</sect1>
</chapter>