I'm further along the upgrade road and have found that starting up my
app under ZEO is *much slower* than it used to be with Zope 2.7, >10
minutes vs. <1 minute.

I have relatively large temporary cache files (generous enough to to
avoid cache flips, even if I don't know the DB size beforehand), and
that the extra time is spent in the following code (on both Windows 2000
and Windows XP):

ZEO.cache.FileCache.__init__, line 779ff, after the cache file is

     # Make sure the OS really saves enough bytes for the file.
     self.f.seek(self.maxsize - 1)

This code seems to have been introduced between the mentioned versions. 

What is the reason for it? I would expect the OS to extend the file as
needed, without an initial "reservation"? It *could* lessen
fragmentation, but this then depends on the file system state. 
Thank you, and best regards, 
Martin Gfeller
For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to