[Python-Dev] Re: RELEASED Python 2.3.1
"Martin v. Löwis"
martin at v.loewis.de
Sun Sep 28 15:52:44 EDT 2003
Barry Warsaw wrote:
> Before I enable it unconditionally, I'd want to be more certain that
> it's necessary, or useful for the majority of sites, and that the
> performance hit is either worth it, not as bad as my benchmarks showed,
> or at least not as observably bad under real-world conditions.
You should first understand why message loss occurs if there is no
fsync. For example, if the MTA stores incoming messages on disk, then
invokes mailman, message loss may occur if the MTA deletes the message
from the spool before mailman has fsync'ed its copy, and the power goes
out at this moment.
If so, users might be better of using a powerful filesystem. I *think*
that, e.g. on Linux, ext3fs with ordered data writes might be
sufficient, as deletion of the file should only occur after the data
have been written (OTOH, it might be that ext3 in journalled mode is
needed, if data and metadata changes are not mutually subject to the
ordering). This should be less expensive than fsync, as the journalled
file system will still perform lazy writes - just in the right order.
Also notice that some file system drivers are incapable of implementing
fsync correctly, so they fall back to treat fsync(2) like sync(2), which
is quite expensive.
More information about the Python-Dev