[ZODB-Dev] Pluggable transactions logic

Barry A. Warsaw barry@zope.com
Fri, 24 Aug 2001 10:59:50 -0400


>>>>> "JDH" == John D Heintz <jheintz@isogen.com> writes:

    JDH> The Packless Berkeley storage (and maybe some near variations
    JDH> of Full) do maintain this information.  This is so that the
    JDH> database can do garbage collection for you; i.e. without you
    JDH> having to call pack() periodically.

One clarification: Berkeley Full still needs to be pack()ed occasionly
in order to collect objects.  This is because it never gets rid of old
revisions of objects when new ones are stored.  This is what allows
transactional undo to work.  So a reference count on an object will
never be decreased except during a pack.  Pack is where old revisions
are removed, reference counts decref'd, unreference objects collected,
and (soon) the garbage collector gets to identify cyclic garbage.

-Barry