Michael Brown <michael.br...@discourse.org> writes:
> I presume the reason postgres doesn't blindly run a sync() is that we
> don't know what other I/O is on the system and it'd be rude to affect
> other services. That makes sense, except for our environment the work
> done by the recursive fsync is orders of magnitude more disruptive than
> a sync().

Hmm.

> * is there a knob missing we can configure?

No.  The trouble with sync() is that per POSIX, it only schedules the
writes; there's no way to tell when the work has been done.  I see
that Linux offers stronger promises in this department, but I don't
think that's very portable.  Moreover, even on Linux there's no
way to detect whether any of the writes failed.

Barring some solution to those problems, we would be unlikely to take
a patch that uses sync() instead of fsync().

                        regards, tom lane


Reply via email to