Re: [Zope-dev] RE: your mail

2001-04-10 Thread Federico Di Gregorio

Scavenging the mail folder uncovered Randall F. Kern's letter:
 Read committed is faster, but I have not done any tests to know how much
 faster.  Read committed mode doesn't support concurrent updates either,
 but fails silently.  In other words, given to concurrent queries:
 
 update foo set a = a + 1
 update foo set a = a + 2
 
 Assuming these overlap, and a starting value of 0 for "a", read
 committed mode would result in "a" either being 1 or 2; serializable
 mode (with my patch) would result in "a" getting set to 3.

this is, imho, the Right Thing (TM), so psycopg will stay serializable.
thank you again for the patch.

federico

-- 
Federico Di Gregorio
MIXAD LIVE Chief of Research  Technology  [EMAIL PROTECTED]
Debian GNU/Linux Developer  Italian Press Contact[EMAIL PROTECTED]
   God is real. Unless declared integer. -- Anonymous FORTRAN programmer

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Re: your mail

2001-04-09 Thread Federico Di Gregorio

Scavenging the mail folder uncovered Randall F. Kern's letter:

[snip]
 Concurrent updates are not supported in the serializable transaction
 mode; if one transaction tries to update (or delete) a row that has
 already been updated by a concurrent uncommitted transaction, the second
 transaction will fail with a "concurrent update" error.

mmm... are they supported in the read commited mode? if yes it will be
easy to add this mode as on option to psycopg cursors and use it in zope.
do you know how much faster would it be compared to the serialized mode?

 Given that the default transaction mode for these DAs is Serializable,
 and Zope has this nifty support for ConflictErrors and retrying
 transactions already, I propose Postgres DAs should convert the
 concurrent update serialization errors into ConflictErrors
 automatically.
 
 I've been running this way for a few days, and everything seems great.
 Any reasons why this might be good/bad/ugly very welcome.  (Like: is it
 safe to throw a ConflictError at any random time during processing?
 From a quick glance at ZODB it seems they are only thrown at commit time
 now)
 
 Here is a small patch to ZPsyccopgDA 0.5.1 that implements this change:

thank you very much for the patch. i am waiting to know what others think
about it (i am not a ZODB expert) before we incorporate it.

ciao,
federico

-- 
Federico Di Gregorio
MIXAD LIVE Chief of Research  Technology  [EMAIL PROTECTED]
Debian GNU/Linux Developer  Italian Press Contact[EMAIL PROTECTED]
   Don't dream it. Be it. -- Dr. Frank'n'further

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )