summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2000-07-16 14:47:57 +0000
committerPeter Eisentraut <peter_e@gmx.net>2000-07-16 14:47:57 +0000
commit81fd7532a973fd667ac3e104464884a6ce4b47e8 (patch)
treec1c6add96a68f9f4774bc41a0fe715b8d70d5ced /doc/src
parentb4c315ba9e46167ded6be89558787d0cdca50f6b (diff)
Incorporate README.fsync into main documentation body
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/runtime.sgml40
1 files changed, 34 insertions, 6 deletions
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index cc6900ece43..addfc544568 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.14 2000/07/15 21:35:47 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.15 2000/07/16 14:47:57 petere Exp $
-->
<Chapter Id="runtime">
@@ -846,11 +846,39 @@ env PGOPTIONS='--geqo=off' psql
<term>FSYNC (<type>boolean</type>)</term>
<listitem>
<para>
- When this is on (default), an <function>fsync()</function>
- call is done after each transaction. Turning this off
- increases performance but an operating system crash or power
- outage might cause data corruption. (Note that a crash of
- <productname>Postgres</productname> itself is not affected.)
+ If this is option is on, the <productname>Postgres</> backend
+ will use the <function>fsync()</> system call in several
+ places to make sure that updates are physically written to
+ disk and will not hang around in the write caches. This
+ increases the chance that a database installation will still
+ be usable after a operating system or hardware crashes by a
+ large amount. (Crashes of the database server itself do
+ <emphasis>not</> affect this consideration.)
+ </para>
+
+ <para>
+ However, this operation severely slows down
+ <productname>Postgres</>, because at all those points it has
+ to block and wait for the operating system to flush the
+ buffers. Without <function>fsync</>, the operating system is
+ allowed to do its best in buffering, sorting, and delaying
+ writes, so this can be a <emphasis>very</> big perfomance
+ increase. However, if the system crashes, parts of the data of
+ a transaction that has already been committed -- according to
+ the information on disk -- will still hang around in memory.
+ Inconsistent data (i.e., data corruption) is therefore likely
+ to occur.
+ </para>
+
+ <para>
+ This option is the subject of an eternal debate in the
+ <productname>Postgres</> user and developer communities. Some
+ always leave it off, some turn it off only for bulk loads,
+ where there is a clear restart point if something goes wrong,
+ some leave it on just to be on the safe side. Because it is
+ the safe side, on is also the default. If you trust your
+ operating system, your utility company, and your hardware, you
+ might want to disable it.
</para>
</listitem>
</varlistentry>