[Zope-ZEO] Does the ZODB support ACID?

A.M. Kuchling akuchlin@mems-exchange.org
Fri, 10 Nov 2000 22:23:47 -0500

Is it technically correct to say that the ZODB supports the ACID
properties?  Atomicity is clearly supported, as is Durability. 

I'm less sure of Isolation; does the ZODB guarantee that changes are
isolated between two different transactions?  I'm wondering if it's
possible for clever code to subvert isolation in this scenario:

* Program A accesses an object O.  
* A then flushes its ZODB cache.
* Program B modifies O and commits the transaction.
* A, running in the same transaction as before, accesses O and sees its
  value as modified by B.  This breaks isolation.

And finally, I don't really see how the ZODB supports Consistency,
since there's no mechanism for specifying integrity constraints within
ZODB itself, though you can certainly write such checks into your
classes.  For example, you can't enforce that the .actor attribute is
a User object that must be present in a given list.