Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > RE: Databases: Which one's right for me?

Reply
Thread Tools

RE: Databases: Which one's right for me?

 
 
Tim Peters
Guest
Posts: n/a
 
      01-11-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->.

"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/MultiVers...urrencyControl


 
Reply With Quote
 
 
 
 
Aaron Watters
Guest
Posts: n/a
 
      01-12-2004
"Tim Peters" <> wrote in message news:<mailman.284.1073847641.12720.python->...
> [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->.
>
> "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


Some SQL isolation levels are hacks to allow long running transactions,
etcetera. If you keep to the strictest isolation level you get the
classical behaviour which has been studied and elaborated by many very
smart people over the last several decades and which is very well
understood.

Does ZODB support the strictest isolation levels? If so how? If not
what does it support exactly?
-- Aaron Watters
===
We'll make our way across the galaxy
And head back home on the L.I.E.
-- "Laser show", Fountains of Wayne
 
Reply With Quote
 
 
 
 
Jeremy Hylton
Guest
Posts: n/a
 
      01-12-2004
On Sun, 2004-01-11 at 20:12, Aaron Watters wrote:
> > "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

>
> Some SQL isolation levels are hacks to allow long running transactions,
> etcetera. If you keep to the strictest isolation level you get the
> classical behaviour which has been studied and elaborated by many very
> smart people over the last several decades and which is very well
> understood.


I think lower isolation levels are more than hacks for long-running
transactions. They seem like they're pretty important for achieving
good performance. The strictest isolation level is necessary, of
course, for some applications, but not all.

Here's was PostgreSQL has to say about full serializability.
http://www.postgresql.org/docs/curre...ction-iso.html

> The Serializable mode provides a rigorous guarantee that each
> transaction sees a wholly consistent view of the database. However,
> the application has to be prepared to retry transactions when
> concurrent updates make it impossible to sustain the illusion of
> serial execution. Since the cost of redoing complex transactions may
> be significant, this mode is recommended only when updating
> transactions contain logic sufficiently complex that they may give
> wrong answers in Read Committed mode. Most commonly, Serializable mode
> is necessary when a transaction executes several successive commands
> that must see identical views of the database.


Jeremy



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Dynamic Menu Items is not right aligned with Right to Left documen =?Utf-8?B?QmlzaG95?= ASP .Net 0 12-28-2006 11:39 AM
Microcontrollers: which one ? which language ? which compiler ? The Jesus of Suburbia NZ Computing 2 02-11-2006 06:53 PM
Tool to enable Right click on pages where Right click is disabled tsteinke@gmail.com Computer Support 4 08-28-2005 11:53 PM
Tool to right click image in windows explorer and rotate image right or left 90 degrees siliconpi Digital Photography 2 11-29-2004 12:56 PM
pass the right form input to the right control Tom ASP .Net 0 12-11-2003 03:07 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57