omnigraph/docs/user/constants.md
Ragnor Comerford c594aeb868
feat(engine): frontier-size Expand dispatcher + lazy CSR build
Replace the env-only mode switch with an auto policy: Expand uses the
BTREE-indexed path when the source frontier is small and the hop count bounded
(OMNIGRAPH_EXPAND_INDEXED_MAX_FRONTIER=1024, OMNIGRAPH_EXPAND_INDEXED_MAX_HOPS=6),
else the in-memory CSR. OMNIGRAPH_TRAVERSAL_MODE=indexed|csr still forces a mode.

Make the CSR index lazy: thread a GraphIndexHandle (memoizing OnceCell over a
Cached/Direct/None builder) through execute_query/execute_pipeline/
execute_rrf_query/execute_anti_join instead of a pre-built Option<&GraphIndex>.
A query served entirely by the indexed path with no AntiJoin never pays the
O(|E|) CSR build — the perf win of Tier 3. AntiJoin still realizes the index
(its negation uses CSR has_neighbors).

Net effect: selective traversals (the common case) skip the whole-graph CSR
build and resolve neighbors from the persisted, incrementally-maintained
src/dst BTREE. Existing traversal/aggregation/end_to_end/search suites now run
the indexed path by default and stay green.

Docs: constants.md (new env knobs), query-language.md (Expand dual path),
indexes.md (graph index is lazy + the indexed alternative).
2026-06-08 11:32:06 +02:00

1.8 KiB

Constants & Tunables (cheat sheet)

Name Value Where
MANIFEST_DIR __manifest db/manifest/layout.rs
Commit graph dir _graph_commits.lance db/commit_graph.rs
Run registry dir (legacy, removed MR-771) _graph_runs.lance inert post-v0.4.0; bytes remain until a delete_prefix primitive lands
Run branch prefix (legacy, removed MR-771/MR-770) __run__ swept off __manifest by the v2→v3 migration; no longer a reserved name
Schema apply lock __schema_apply_lock__ db/mod.rs
Manifest publisher retry budget PUBLISHER_RETRY_BUDGET = 5 db/manifest/publisher.rs
Internal manifest schema version INTERNAL_MANIFEST_SCHEMA_VERSION = 3 db/manifest/migrations.rs
Merge stage batch MERGE_STAGE_BATCH_ROWS = 8192 exec/merge.rs
Maintenance concurrency OMNIGRAPH_MAINTENANCE_CONCURRENCY=8 db/omnigraph/optimize.rs
Lance blob compaction support LANCE_SUPPORTS_BLOB_COMPACTION = false db/omnigraph/optimize.rs
Graph index cache size 8 (LRU) runtime_cache.rs
Expand indexed-path max frontier OMNIGRAPH_EXPAND_INDEXED_MAX_FRONTIER=1024 exec/query.rs
Expand indexed-path max hops OMNIGRAPH_EXPAND_INDEXED_MAX_HOPS=6 exec/query.rs
Expand mode override OMNIGRAPH_TRAVERSAL_MODE (indexed|csr; unset = auto) exec/query.rs
Default body limit 1 MB omnigraph-server/lib.rs
Ingest body limit 32 MB omnigraph-server/lib.rs
Engine embed model gemini-embedding-2-preview omnigraph/embedding.rs
Compiler embed model text-embedding-3-small omnigraph-compiler/embedding.rs
Embed timeout 30 000 ms both clients
Embed retries 4 both clients
Embed retry backoff 200 ms both clients
LANCE memory pool default 1 GB (raised in v0.3.0) runtime