mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-09 01:35:18 +02:00
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).
26 lines
1.8 KiB
Markdown
26 lines
1.8 KiB
Markdown
# 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 |
|