Skip to main content

Module graph

Module graph 

Source
Expand description

The graph: a key discipline over the phase-1 store. No structure of its own.

One hop = one descent + a sequential read of the degree (GRAPH.md). Levers: dense sequential ids so co-inserted nodes share leaves; sorted-frontier BFS so a wave is one ordered sweep instead of a descent per node; props in the leaf so hybrid filters cost no extra I/O.

Laws: streaming iterators (no Vec ∝ store); hop cost ∝ degree; the visited set of a BFS ∝ the reachable set – inherent to “never revisit”, the one named exception, bounded by the caller’s depth.

Structs§

EdgeIter
(src, ty, other, props) per edge. For rev (redge) keys, other is the true source and props are on the forward key only.
Graph
LabelIter
ParallelSearcher
Long-lived fan-out searcher (2g.2): T pinned snapshot readers, each owning one contiguous id slice of the fingerprint keyspace. Send the same query to all slices, merge survivors, exact-rescore on reader 0.
PropIter
(value, id) pairs from a property range, streamed. Stops past hi or the prop’s space – the tag+prop prefix bounds it like every other scan.
VecMeta
Everything one vector field needs to be read back correctly, in one row (keys::catalog_field(CAT_VEC, field)). Nothing here is derivable from the vectors:

Enums§

Metric
Distance metrics. Lower is better for all three – cosine and dot are returned NEGATED so one ordering rule serves every metric.