Steven D'Aprano wrote:
On Fri, 13 Mar 2009 01:02:26 pm R. David Murray wrote:
On Fri, 13 Mar 2009 at 00:35, Antoine Pitrou wrote:
R. David Murray <rdmurray <at> bitdance.com> writes:
Seriously, though, the point is that IMO an application should not
be calling fsync unless it provides a way for that behavior to be
controlled by the user.
But whether an application does it or not is none of Python's
business, is it? What is the disagreement exactly?
I'd like to see whatever feature gets added support the application
writer in making this user controllable, or at the very least
document that this to do so is best practice if you use the sync
feature.
It's not best practice. It may be best practice for a certain class of
users and applications, e.g. those who value the ability to control
low-level behaviour of the app, but it is poor practice for other
classes of users and applications. Do you really think that having
Minefield make the file syncing behaviour of the high scores file
user-configurable is best practice? People care about their high
scores, but they don't care that much.
It may even lead to more data loss than leaving it out:
* If the application chooses a specific strategy, this strategy might
(for the sake of the argument) lead to data loss once in ten million
writes on average.
* If the application makes this a configuration option, the increased
complexity of writing the code, and the increased number of paths that
need to be tested, may lead to bugs which cause data loss. This may be
more risky than the original strategy above (whatever that happens to
be.)
Complexity is not cost-free, and insisting that the more complex,
expensive solution is always "best practice" is wrong.
If the pops and moms uses a financial program and lost their only copy
of 10 years worth of financial data, they'll simply be confused and
that's it.
Meanwhile if a network administrator needs to squeeze the last bit of
performance out of his backup script, he definitely would threaten the
dev-team of the programming language to make manual sync file writing
the default, since it makes it difficult for him to fine-tune the
syncing process.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com