Jim Fulton wrote at 2007-3-30 11:13 -0400:
>>> - A non-GC pack that got rid of old records but didn't bother with
>>> This would be advantagious for lots of folks independent of cross-
>>> database reference issues.
>> Sounds like this would be the easiest way to solve the above issue?
>It is a fairly straightforward way, depending on the application.
>Unfortunately, it's probably non-trivial, as the FileStorage packing
>code is fairly intense. :)
I expect it to be quite easy:
The packing code consists roughly of two phases:
* the analysis phase determines which oids are reachable from the root
* the copying phase copies transactions to the new (packed) storage
omitting object records that are older than the packing time
and not the current record for a reachable object.
If we skip the analysis phase and use the set of all known objects
as set of "reachable objects", we would get the new function.
However, this packing would never delete an object.
Once created, an object would never be removed from a storage (only
its non current states).
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org