relstorage.treemark – OID tree traversal for the garbage collection phase of packing#

OID tree traversal for the garbage collection phase of packing.

Optimized for memory efficiency. Uses sets of native integers rather than Python integers because native integers take up a lot less room in RAM.

class IISet32X[source]#

Bases: object

An IISet32 extended with a Python set layer for efficient inserts.

class TreeMarker[source]#

Bases: object

Finds all OIDs reachable from a set of root OIDs.

add_refs(pairs)[source]#

Add a list of (from_oid, to_oid) reference pairs.

from_oid and to_oid must be 64 bit integers.

free_refs()[source]#

Free the collection of refs to save RAM.

mark(oids)[source]#

Mark specific OIDs and descendants of those OIDs as reachable.

property reachable#

Iterate over all the reachable OIDs.

iteritems()#

D.items() -> a set-like object providing a view on D’s items