[Zope-dev] RE: [ZODB-Dev] Subtransaction backward compatibility

Tim Peters tim at zope.com
Tue Aug 23 15:07:37 EDT 2005

[Dieter Maurer]
> Subtransactions used to be used for two purposes:
>   *  ensure that newly created objects get "_p_" attributes
>      (especially "_p_jar" and "_p_oid")
>   *  release memory in the mid of large transactions
>      (i.e. reading and/or writing large amounts of objects)
> With ZODB 3.4, subtransactions are implemented as savepoints. They can
> still be used for the first purpose. But, they no longer start cache
> garbage collection.
> As a consequence, subtransactions/savepoints can be dropped at places
> where only the second purpose has mattered, e.g. in Zope's ZCatalog.

Over on zodb-dev, Jim (Fulton) confirmed that it was his intent that making
a savepoint would trigger cache gc.  It's a ZODB bug that it currently does
not; I'll fix that:

-----Original Message-----
From: zodb-dev-bounces+tim=zope.com at zope.org On behalf of Jim Fulton
Sent: Tuesday, August 23, 2005 2:53 PM
To: Tim Peters
Cc: zodb-dev at zope.org
Subject: Re: [ZODB-Dev] Subtransaction backward compatibility


Assuming that we no longer call incrgc, that would be an oversight.  When a
connection does a savepoint, it should also do an incrgc.

Note that applications that *really* want to reduce memory after a
savepoint may and often should make explicit cache-management calls
on the transaction.  This should still work.


Jim Fulton           mailto:jim at zope.com       Python Powered!
CTO                  (540) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org

More information about the Zope-Dev mailing list