[Zope-dev] [CRITICAL] Conflict Errors, Transactions,Retries,OhMy....

Shane Hathaway shane@zope.com
Sat, 31 May 2003 15:13:14 -0400 (EDT)


On Sat, 31 May 2003, Dieter Maurer wrote:

> Shane Hathaway wrote at 2003-5-30 14:52 -0400:
>  > ...
>  > The ideas weren't as clear in my head then as they are now. :-)  See my 
>  > reply to Chris.
> 
> What do you do with "ReadConflictError"s? They are worse than
> (write) "ConflictError"s as they are not affected by conflict
> resolution?

The Shield prototype dealt with read conflict errors just fine.  It just 
performed a rollback/replay operation early, if I recall correctly, 
although that's potentially a lot of extra work.  MVCC will help here.

> When you replay (without rereading and applying the application
> logic), you can loose changes.

Actually, the idea is to replay the application logic, not merge pickles.  
This is a lot easier than it sounds:  the application just invokes any
operation that changes the database through an interface that logs that
operation.  The log is either consulted for replay or discarded at the end
of the transaction.  The prototype proves it can work.

Shane