On 01/11/10 08:59, Greg Smith wrote:
Marti
Raudsepp wrote:
Unless fdatasync is unsafe, I'd very much
want to see it as the
default for 9.1 on Linux (I don't know about other platforms). I
can't see any reasons why each write would need to be sync-ed if I
don't commit that often. Increasing wal_buffers probably has the same
effect wrt data safety.
Â
Writes only are sync'd out when you do a commit, or the database does a
checkpoint.
This issue is a performance difference introduced by a recent change to
Linux. open_datasync support was just added to Linux itself very
recently. It may be more safe than fdatasync on your platform. As new
code it may have bugs so that it doesn't really work at all under heavy
load. No one has really run those tests yet. See
http://wiki.postgresql.org/wiki/Reliable_Writes for some background,
and welcome to the fun of being an early adopter. The warnings in the
tuning guide are there for a reason--you're in untested territory now.Â
I haven't finished validating whether I consider 2.6.32 safe for
production use or not yet, and 2.6.36 is a solid year away from being
on my list for even considering it as a production database kernel.Â
You should proceed presuming that all writes are unreliable until
proven otherwise.
Greg,
Your reply is possibly a bit confusingly worded - Marti was suggesting
that fdatasync be the default - so he wouldn't be a new adopter, since
this call has been implemented in the kernel for ages. I guess you were
wanting to stress that *open_datasync* is the new kid, so watch out to
see if he bites...
Cheers
Mark
|