[ZODB-Dev] RE: [Zope-CMF] Big CMF sites / Storage

Jeremy Hylton jeremy@zope.com
Thu, 31 Jan 2002 02:16:55 -0500


Toby,

It's really nice to hear that BerkeleyStorage is 'fast enough.'  I've
found it really hard to get a handle on how application performance
depends on the various components of ZODB.  There's caching at two
levels -- ZODB cPickleCache and ZEO client cache -- that probably
hides most of the slowness of other components, except in the case of
contention for objects.

Another issues is that ZEO is slow enough that it hides a lot of the
performance effects of FileStorage vs. Berkeley storage.  I'll be it
we had ZEO a lot faster, storage performance would matter more :-).

Do you have any suggestions for a decent application benchmark that
we could use for ZODB 4 development?  It would be great to have a
suite of tests that could be used to guide optimization efforts.
Right now, Jim's loadmail script (part of ZCatalog) is the best we've
got -- not that it's bad, but it may be fairly limited.

There are things we know are 'wrong' with ZEO / ZODB:

    - Blocking disk I/O in the storage prevents it from handling any
      other client requests.  Example: no reads are serviced during a
      tpc_vote(). 

    - Only a single client can be writing data at a time.  IOW, once
      one client starts a tpc_begin(), all other clients must wait
      until it finishes.

    - As you're well aware, the cache doesn't do a good enough job
      controlling memory usage.

But we don't have good tests that demonstrate these problems or
provide some metrics to guide improvements.  Perhaps the community
could help by boiling down some applications they care about into
simple, repeatable benchmarks.

Jeremy