[Zope] Building a fast, scalable yet small Zope application

Lennart Regebro regebro at gmail.com
Sun Apr 26 03:30:40 EDT 2009

On Sat, Apr 25, 2009 at 13:24, Morten W. Petersen <morten at nidelven-it.no> wrote:
> So far, I've been contemplating disabling undo (if that's possible),

I doubt that it would make a difference. The Undo functionality comes
out of the database being logging, and changing that would mean pretty
much a complete rewrite.

> and using BTree structures, maybe segmenting objects into different groups
> (folders) to further speed up lookups.

Yes, in my experience putting small objects in to BTree structures is
quite fast. You may be talking about BTreeFolders, and in that case I
don't know, I haven't done any sort of performance testing on those, I
have used BTrees directly though, and that was fast. I haven't
compared to SQL, but others have, and ZODB itself seems according to
those tests quite fast. We know Plone slows everything down immensly
in any case.

I don't know if BTrees get slow when they get very big, so you would
need to test that.

> Should I consider using the ZCatalog for faster lookups?

Maybe. You probably need to not only store the objects in BTrees, but
also somehow have indexes. These you do by storing the values you want
to search on in BTrees as well. The ZCatalog does this in a
configurable way for you, so if you need configurability, yes. If not,
it's probably faster to make your own indexes with your own BTrees.

Lennart Regebro: Python, Zope, Plone, Grok
+33 661 58 14 64

More information about the Zope mailing list