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 4BE4ADB1.4060509@agliodbs.com
Whole thread Raw
In response to Re: [HACKERS] no universally correct setting for fsync  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-docs
On 5/7/10 5:13 PM, Tom Lane wrote:
> Josh Berkus <josh@agliodbs.com> writes:
>> This is what I have to replace the current fsync entry in config.sgml.
>
> s/unexpected shutdown/system crash/, perhaps.  The wording you have
> suggests that a forced Postgres stoppage produces a problem, which it
> doesn't.  It takes a failure at the OS level or below to cause a
> problem.

I actually meant "unexpected *system* shutdown", i.e. power-out.  A lot
of people think "crash" just means kernel dump, whereas a UPS failure or
tripped power cord is a lot more likely (except maybe on Windows).

Revised:

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


     <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 system shutdown or crash.  Thus it is only
advisable
        to turn off  <varname>fsync</varname> if you can easily recreate
        your entire database from external data.
       <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: Tom Lane
Date:
Subject: Re: [HACKERS] no universally correct setting for fsync
Next
From: "Kevin Grittner"
Date:
Subject: Re: [HACKERS] no universally correct setting for fsync