[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