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,
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org