You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/components/router/standalone-indexer.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ subtitle: Run the KV cache indexer as an independent HTTP service for querying b
9
9
10
10
The standalone KV indexer (`python -m dynamo.indexer`) is a lightweight service that maintains a radix tree of cached blocks and exposes HTTP endpoints for querying and managing workers. It supports two operational modes:
11
11
12
-
-**Standalone mode** (default): subscribes to ZMQ KV event streams directly from workers. No Dynamo runtime dependencies required.
12
+
-**Standalone mode** (default): subscribes to ZMQ KV event streams directly from workers. No Dynamo runtime discovery, registration, or event-plane integration required.
13
13
-**Dynamo runtime mode** (`--dynamo-runtime`): integrates with the Dynamo runtime for automatic worker discovery via MDC, KV event ingestion via the event plane (NATS or ZMQ), and overlap queries over the request plane for remote frontends.
14
14
15
15
This is distinct from the [Standalone Router](../../../components/src/dynamo/router/README.md), which is a full routing service. The standalone indexer provides only the indexing and query layer without routing logic.
@@ -44,11 +44,11 @@ Multiple indexer replicas can subscribe to the same ZMQ worker endpoints for fau
44
44
45
45
### How It Works
46
46
47
-
1. Workers are registered via `--workers`CLI, which connects ZMQ SUB sockets immediately.
48
-
2. A 1-second delay ensures the peer's tree state has advanced past the ZMQ connection point, so the dump covers any events that would otherwise be lost to the slow-joiner window.
47
+
1. Workers are registered via `--workers`or `/register`. Each ZMQ listener enters `pending` state and begins its initial subscribe/connect attempt in the background.
48
+
2. A 1-second delay biases peer recovery past the slow-joiner window, so the dump covers events that may have occurred before a fresh listener can safely start draining.
49
49
3. The indexer fetches a `/dump` from the first reachable peer in `--peers`.
50
50
4. Dump events are applied to populate the radix tree.
51
-
5. ZMQ listeners are unblocked and begin draining any eventsthat buffered during recovery.
51
+
5.After recovery completes, the ready gate opens. Any listener whose initial ZMQ connect has already succeeded transitions to `active`and begins draining buffered events; listeners for workers that are still down remain `pending` until they connect.
52
52
53
53
If no peers are reachable, the indexer starts with an empty state.
54
54
@@ -81,11 +81,11 @@ Peers can be registered at startup via `--peers` or dynamically via the HTTP API
81
81
82
82
## Building
83
83
84
-
The service is exposed through the Python package after building the bindings with maturin. Feature flags control which capabilities are compiled in:
84
+
The service is exposed through the Python bindings package and launched with `python -m dynamo.indexer` after building the bindings with maturin. Feature flags control which capabilities are compiled in:
Returns metrics in Prometheus text exposition format. Available when the binary is built with the `kv-indexer-metrics` or `kv-indexer-runtime` feature.
158
+
Returns metrics in Prometheus text exposition format. Available when the Python bindings are built with the `kv-indexer-metrics` or `kv-indexer-runtime` feature.
0 commit comments