[ZODB-Dev] Database Read Conflicts -- neither safe nor robust

Jeremy Hylton jeremy@zope.com
14 Mar 2003 11:48:52 -0500


On Fri, 2003-03-14 at 01:19, Dieter Maurer wrote:
> How to make it safer?
> To get true serializability, we need to make a freshness check for
> read data at transaction commit time. For this, read objects would register
> with the transaction and be checked at commit.

I'd like to offer this as an option in ZODB4, although I don't know if
I'll find time to implement it.  There's a non-trivial extra cost to
implement this level of isolation, so I can imagine so apps don't want
to pay for it.

> How to make it more robust?
> Versioned storages could implement serialization level "READ_COMMITTED".
> For this, the transaction would register its start time.
> When an invalid object should be read from ZODB, then the
> object's state valid at the transactions start time would be read.
> Storages unable to implement this would raise a ReadConflictError.

We will be implementing this for ZODB4.  It's the next major project in
the queue.

Jeremy