Databases: Which one's right for me?

Tim Peters tim.one at comcast.net
Sun Jan 11 20:00:37 CET 2004


[Aaron Watters]
> BTW, I would like to see somewhere an explanation of how
> ZODB concurrency control and recovery work.  Please inform if
> there is some information.  I'm not encouraged by the fact that
> in what documentation I can find the definitions are not the
> standard ones.

Of course you're much more likely to get a useful discussion of this on a
ZODB list, like <mailto:zodb-dev at zope.org>.

"The standard" ones aren't all that standard.  ANSI SQL-92 defines multiple
isolation levels, and they've been (I think) fairly critiqued as  incomplete
and partly ambiguous; e.g.,

    A Critique of ANSI SQL Isolation Levels
    Hal Berenson, et al.
    http://citeseer.nj.nec.com/berenson95critique.html

To complicate matters, as Jeremy says here:

    http://www.python.org/~jeremy/weblog/030514.html

    ZODB uses optimistic concurrency control.  It can be hard to
    describe what isolation guarantees it provides, because optimistic
    implementations don't map naturally onto the ANSI isolation levels.

Jeremy's blog there also contains links to more recent papers.

To complicate matters more (in theory, but nicer in practice for most uses),
ZODB 3.3 introduces so-called Multiversion Concurrency Control as default
behavior:

    http://zope.org/Wikis/ZODB/MultiVersionConcurrencyControl





More information about the Python-list mailing list