[Persistence-sig] "Straw Man" transaction API

Phillip J. Eby pje@telecommunity.com
Tue, 30 Jul 2002 08:40:01 -0400


At 08:36 PM 7/29/02 -0400, Jeremy Hylton wrote:
>Last week, I worked out a revised transaction API for user code and
>for data managers.  It's implemented in ZODB4, but is fairly
>preliminary code.  I imagine we'll revise it further, but I'd like to
>describe the changes briefly.

I'm not sure if this new API is in relation to the proposals on this list 
or not, but I'm curious how this affects a few things:

* The need for participants to join every transaction.  This is one of my 
top complaints about the existing API.  I have *never* had a single 
application where I couldn't simply register all participants to the 
transactions at or near startup, and never need to do so again -- if it 
weren't for the fact that the transaction API doesn't work that way.  I 
have to write code that tracks whether an object has been registered with 
*this* transaction, and knows when the transaction is over so that it knows 
it needs to register again.  Could we at least have a "permanent join" 
operation?

* Arbitarily nested, cascading participants.  Does this support 
them?  How?  I don't see any mention of the issues in the interfaces.

* If a data manager can't support rollback to a savepoint, what does it return?


 >(The need for notify-on-read, BTW, is to support higher isolation
 >levels than ZODB currently supports.)

And to support delayed loading of attributes by multi-backend data 
managers.  Although to support that, there'd need to be the opportunity to 
override the attribute value that was read.