Re: [HACKERS] no universally correct setting for fsync - Mailing list pgsql-docs

From Josh Berkus
Subject Re: [HACKERS] no universally correct setting for fsync
Date
Msg-id 4BE4AA33.7020700@agliodbs.com
Whole thread Raw
Responses Re: [HACKERS] no universally correct setting for fsync  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-docs
Folks,

This is what I have to replace the current fsync entry in config.sgml.

I believe that the note about needing fsync for Warm Standby to work
correctly is true, but could someone verify it?

=========================

     <varlistentry id="guc-fsync" xreflabel="fsync">
      <indexterm>
       <primary><varname>fsync</> configuration parameter</primary>
      </indexterm>
      <term><varname>fsync</varname> (<type>boolean</type>)</term>
      <listitem>
       <para>
        If this parameter is on, the <productname>PostgreSQL</> server
        will try to make sure that updates are physically written to
        disk, by issuing <function>fsync()</> system calls or various
        equivalent methods (see <xref linkend="guc-wal-sync-method">).
        This ensures that the database cluster can recover to a
        consistent state after an operating system or hardware crash.
       </para>

       <para>
        While turning off <varname>fsync</varname> is often a performance
        benefit, this can result in unrecoverable data corruption in the
event
        of an unexpected shutdown. Thus it is only advisable to turn off
        <varname>fsync</varname> if you can easily recreate
        your entire database from external data.  <varname>fsync</varname>
        must be on for WAL archiving to work correctly
        (see <xref linkend="continuous-archiving">).
       <para>

       <para>
        In many situations, turning off <xref
linkend="guc-synchronous-commit">
        for noncritical transactions can provide much of the potential
        performance benefit of turning off <varname>fsync</varname>, without
        the attendant risks of data corruption.
       </para>

       <para>
        <varname>fsync</varname> can only be set in the
<filename>postgresql.conf</>
        file or on the server command line.
        If you turn this parameter off, also consider turning off
        <xref linkend="guc-full-page-writes">.
       </para>
      </listitem>
     </varlistentry>

--
                                  -- Josh Berkus
                                     PostgreSQL Experts Inc.
                                     http://www.pgexperts.com

pgsql-docs by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Note addition to REASSIGN OWNED
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] no universally correct setting for fsync