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