[ZODB-Dev] ZODB4 project plan

Phillip J. Eby pje@telecommunity.com
Wed, 27 Nov 2002 11:22:01 -0500


At 10:17 AM 11/27/02 -0500, Guido van Rossum wrote:

>That's funny.  I am pleading to remove them, because (even though Zope
>*supports* them) we recommend against using them in Zope; no Zope
>sites that I know of use them.  Jeremy wants to keep them, because he
>thinks they are a useful feature in theory, and he was expecting
>(hoping?) that some non-Zope user of ZODB would come up with a use
>case.  But it seems the strongest "drop'em" sounds come from the
>MEMS-Exchange group, who are ZODB users but not Zope users. :-)
>
>My conclusion: versions are a big YAGNI.  Let's rip'em out.

Speaking of YAGNI's and ZODB4, does anybody have any actual use cases for 
nested transactions?  I notice that's listed on the project plan, but I 
thought that discussion on the Persistence-SIG suggested them to be overkill.

The main use case for "subtransactions" in ZODB presently, is to free up 
cache space by flushing dirty objects.  But that use case has nothing to do 
with transaction semantics; when you add a subtransaction for that, you do 
it essentially as a "special case" fix for high-write-volume 
operations.  So as Shane pointed out, providing data managers with a 
"flush()" method would not only address the specific issue in context, it 
would be easier to explain code that uses it.

Interestingly, from the comments so far about versions, it sounds as though 
improved "long transaction" support would be much more valuable than nested 
transaction support for many kinds of applications.