Re: Remove fsync ON/OFF as a visible option? - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: Remove fsync ON/OFF as a visible option?
Date
Msg-id CAMkU=1yoK5traX2LMJRrxWQd_ga5EWzYbHsUhpQnduLF9UYTPw@mail.gmail.com
Whole thread Raw
In response to Re: Remove fsync ON/OFF as a visible option?  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Remove fsync ON/OFF as a visible option?  (Jim Nasby <Jim.Nasby@BlueTreble.com>)
List pgsql-hackers
On Sat, Mar 21, 2015 at 8:54 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Stephen Frost <sfrost@snowman.net> writes:
> At the moment, one could look at our default postgresql.conf and the
> "turns forced synchronization on or off" and think it's something akin
> or somehow related to synchronous_commit (which is completely different,
> but the options are right next to each other..).

> How about a big warning around fsync and make it more indepenent from
> the options around it?

Yeah, the main SGML docs are reasonably clear about the risks of fsync,
but postgresql.conf doesn't give you any hint that it's dangerous.  Now
I'm not entirely sure that people who frob postgresql.conf without having
read the docs can be saved from themselves, but we could do something
like this:

 # - Settings -

 #wal_level = minimal                   # minimal, archive, hot_standby, or logical
                                        # (change requires restart)
 #fsync = on                            # turns forced synchronization on or off
+                                       # (fsync=off is dangerous, read the
+                                       # (manual before using it)
 #synchronous_commit = on               # synchronization level;
                                        # off, local, remote_write, or on
 #wal_sync_method = fsync               # the default is the first option
                                        # supported by the operating system:

Also, I think the short description "turns forced synchronization on or
off" could stand improvement; it really conveys zero information.  Maybe
something like "force data to disk when committing"?

I agree the current description is lacking, but that proposed wording would be a better description of synchronous_commit.  It is checkpointing and flush-WAL-before-data where fsync=off does its damage.
 
"Force data to disk when needed for integrity"?

Or just don't describe what it is at all, and refer to the documentation only.

Cheers,

Jeff

pgsql-hackers by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Remove fsync ON/OFF as a visible option?
Next
From: Dmitry Dolgov
Date:
Subject: Re: GSoC 2015: Extra Jsonb functionality