Lino Website

surf notes

What about ZODB?

Friday, 1. July 2005 11:55.

Kevin Dangoor compares ZODB and pysqlite/SQLObject is is blog entry ZODB vs. pysqlite with SQLObject

«The current ZODB implementation uses multi-version concurrency control (MVCC). This means that rather than locking the data when a write is occurring, other threads will just get older data. The ZODB doesn't do locking at all. Instead, of two threads try to make updates to the same object a Conflict exception is raised for the one that didn't make it through. The great thing about this strategy is that you can often just capture that exception and replay the transaction at the application level. This is exactly what Zope does.»

«Durus is a lighter-weight implementation of the same base functionality ZODB gives you; indeed the api is modelled after ZODB. As I understand it the motivation for writing Durus was simplicity and in fact most Python programmers can grasp what is happening under the covers - the code for Durus is fairly small. Durus does not offer MVCC.»

«The bad thing is that packing a 250MB database file down to 195MB takes many minutes (on my 1.25GHz PowerBook) with the Python process grabbing as much CPU as it can. It's fine for a website to do a pack during off-peak hours, but sucking up a desktop user's CPU for a good long time is unpleasant. The ZODB tends to grow more quickly than a relational database does.»

Copyright 2001-2007 Luc Saffre.
http://lino.saffre-rumma.ee
Generated 2007-06-07 16:22:29