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).
Is that correct? I think yes, so an idea might be to split up
transactions to one transaction per object state somehow and pack again.
This would definitely work only offline of course.
How is this handled by relstorage?
Quote of the day:
The most beautiful thing we can experience is the mysterious. It is the
source of all true art and science.
- Albert Einstein
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org