graph
analytics.sssp
Compute shortest-path distances from a source.
strata graph ssspdb.graphs.analytics.sssp(graph: 'str', source: 'str', *, direction: 'Optional[str]' = None, budget: 'Optional[dict]' = None, as_of: 'Optional[int]' = None, as_of_time: 'Optional[TimeLike]' = None) -> 'Any'wire graph_sssp
Computes weighted shortest-path distances from a source node over a consistent snapshot. Edge weights (default 1.0) accumulate along paths; unreachable nodes are omitted from the result. Direction defaults to `outgoing`. The source node must exist (`not_found.engine.graph_node`). Accepts an optional snapshot budget and `as_of` for time travel.
Analytics commands compute over a consistent snapshot of the visible graph and return a complete result payload in one response. They accept optional snapshot budgets and an `as_of` timestamp for time travel; results are deterministic for a fixed graph state.
To see the complete help for this command, run:
strata graph sssp --helphelp(db.graphs.analytics.sssp)
Example
Single-source shortest paths from a source node.
strata graph create gstrata graph add-node g astrata graph add-node g bstrata graph add-node g cstrata graph add-edge g a knows bstrata graph add-edge g b knows cstrata graph sssp g a
_ = db.graphs.create("g")_ = db.graphs.add_node("g", "a")_ = db.graphs.add_node("g", "b")_ = db.graphs.add_node("g", "c")_ = db.graphs.add_edge("g", "a", "knows", "b")_ = db.graphs.add_edge("g", "b", "knows", "c")sorted(db.graphs.analytics.sssp("g", "a").distances)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| graph | string | yes | Graph name. |
| source | string | yes | Source node id. |
| as_of | integer or null | no | Read as of a position on the logical commit timeline - the `timestamp` from `history` output, not the `version`, and never a calendar date. Reads the graph state visible at that timeline position. To read as of a real time, use `as_of_time` instead. |
| as_of_time | integer or null | no | Read as of a real time: a wall-clock instant in microseconds since the Unix epoch (UTC), as reported by `committed_at` on a write ack or on any `history` row. Resolves to the commit at or before that instant, and fails rather than guessing if the instant falls outside the branch's recorded history. Mutually exclusive with `as_of`. |
| branch | string or null | no | Target branch. Defaults to the executor handle branch. |
| budget | any | no | Optional snapshot size bounds. Defaults to the engine limits. |
| direction | any | no | Optional traversal direction. Defaults to outgoing. |
| space | string or null | no | Target product space. Defaults to `"default"`. |
Returns
AnalyticsResult<GraphSsspData>
- dataGraphSsspData
- typestring
Errors
Recover by code. Retry policy and commit outcome come from the shipped error registry.
| Code | Retry | Commit outcome |
|---|---|---|
| failed_precondition.engine.runtime_closed | never | not_started |
| not_found.engine.branch | never | not_applicable |
| invalid_argument.engine.product_space | never | not_started |
| invalid_argument.engine.graph_name | never | not_started |
| not_found.engine.graph | never | not_applicable |
| invalid_argument.engine.graph_node_id | never | not_started |
| not_found.engine.graph_node | never | not_applicable |
| resource_exhausted.engine.graph_analytics_budget | after_state_change | not_applicable |
| invalid_argument.executor.graph_analytics_budget | never | not_started |