Re: Final(?) proposal for wal_sync_method changes - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Final(?) proposal for wal_sync_method changes
Date
Msg-id 1167.1291765795@sss.pgh.pa.us
Whole thread Raw
In response to Re: Final(?) proposal for wal_sync_method changes  ("Joshua D. Drake" <jd@commandprompt.com>)
List pgsql-hackers
"Joshua D. Drake" <jd@commandprompt.com> writes:
> On Tue, 2010-12-07 at 18:11 -0500, Tom Lane wrote:
>> Josh Berkus <josh@agliodbs.com> writes:
>>> Because nobody sane uses OSX on the server?

>> Some of us would make the same remark about Windows.  But we go out of
>> our way to provide a safe default on that platform anyhow.

> Not to mention the assertion that people don't use OSX on a server is
> patently false. They don't use it on big servers, but it is very popular
> for the SMB (big time capital S).

Actually the previous discussions about this are coming back to me now.
With the current code, we don't actually guarantee safe flush behavior
by default on ANY of the common consumer platforms.  In the Linux case
we can't, because we can't monkey with hdparm settings.  (I think the
same is true on BSDen ... anybody know?)  On Windows and OS X we default
to open_datasync despite its not being safe on either platform.  We
previously debated switching those to fsync_writethrough which would
make them safe by default, but decided not to, partly on grounds of the
inevitable ZOMG ITS SLOW backlash and partly on grounds of keeping
cross-platform consistency.

I don't think it's a good idea to reopen the fsync_writethrough debate
right now, certainly not for something we're contemplating
back-patching.  I think what we'd better do is ensure that that is
*not* selected as the default, on either Windows or OS X.  So we need to
get rid of the HAVE_FSYNC_WRITETHROUGH_ONLY hack.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Final(?) proposal for wal_sync_method changes
Next
From: Josh Berkus
Date:
Subject: Re: Final(?) proposal for wal_sync_method changes