On 03/31/2011 04:46 AM, Adam GROSZER wrote:
> After investigating FileStorage a bit, I found that GC runs on objects,
> but pack later by transactions. That means that if there's a bigger-ish
> transaction, we can't get rid of it until all of it's objects are GCed
> (or superseeded by newer states).
No, but we can remove old object states from the big transaction and
mark it as partially destroyed (that's what the "packed" flag is for) so
that the transaction is no longer eligible for undo. Both FileStorage
and RelStorage do that. Not much space is wasted.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org