Databases: Which one's right for me?
Tim Peters
tim.one at comcast.net
Sun Jan 11 14:00:37 EST 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