On 04/14/2010 03:30 AM, Nitro wrote:
> Am 14.04.2010, 04:39 Uhr, schrieb Tim Peters<tim.pet...@gmail.com>:
>>> I wonder if _commit is really *that* slow
>> Six years ago I timed factor-of-100 speed differences due to using MS
>> _commit() on WinXP at the time:
>>> or if there's another (faster) function which can be called...
>> No MS function that does the same thing.
> Seems like ZODB has a long history of discussions on this matter:
> There's even a proposal for improvement in that thread, also on the wiki:
> What I don't really get is why you should never use "None" on windows. As
> far as I can judge from the various transaction rates in the thread Tim
> mentioned, fsync is just a no-op on linux anyways (depending on the
> specific file system of course).
I'm pretty sure it's not. IIRC fsync is defined by POSIX and absolutely
requires the implementor to flush data physically to disk ensuring its
persistency. If that doesn't hold true then all transactions are borked.
I've seen virtualised environments like VMWare ESX lie about fsyncs from
a virtual hardware perspective.
A similar issue with breaking fsync was the discussion around ext4 on
notebooks with a "only actually flush discs every 10 seconds".
In the end it really depends on what you need your data for. If I'd
store the information that a customer paid me 50 EUR for something and I
presented a screen to him that told him he'll receive some good for that
then I'd rather stick with compliant transactions.
> I am almost tempted to do
> os.fsync = lambda fd: 0
> and rely on yesterday's backup. 0.49 j/k.
Christian Theune · c...@gocept.com
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 0 · fax +49 345 1229889 1
Zope and Plone consulting and development
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org