On Wed, Nov 13, 2013 at 9:24 AM, Jens W. Klein <j...@bluedynamics.com>wrote:

> Thanks Martijn for the hint, but we are using a history free database, so
> growing does only happen by deleted objects in our case.

Right, that is an important distinction.

> When in history free mode, is it possible to detect deleted objects at
> store-time? This way we could add the zoid at store time to a
> objects_deleted table in order to clean them up later.

No, because multiple references to an object might exist. There is no
reference counting in a ZODB, hence the intensive manual tree traversal job
when garbage collecting.

>  Another way to speed up graph traversal would be to store the
> object-references in a field of object_state. At the moment we have to read
> the pickle in order to get the referenced zoids. Storing additional -
> redundant - information might be not perfect, but it would allow to pack/gc
> the database without any knowledge about the state objects structure, i.e.
> using a stored procedure.

That sounds like a feasible idea, at least to me.

> I would like to know what the relstorage experts think about this ideas.

You may want to contact Shane directly, he *may* not be reading this list

Martijn Pieters
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to