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
query -e 'match { $p: Person } return { count($p) as n }' (4,678 rows)
0.45 s, 0.35 s, 0.35 s
keyed lookup Person { slug: $s }
0.42 s, 0.39 s, 0.38 s
omnigraph version (CLI startup)
0.01 s
So a trivial served read costs about 0.35 s, of which 0.10–0.15 s is the round trip. The remaining ~0.2 s is server-side and unattributed. It is not manifest reloading: the warm-read contract (crates/omnigraph/tests/warm_read_cost.rs, since v0.7.1 #268) makes a warm same-branch read zero __manifest reads and one version probe. snapshot being slower than a query is itself unexplained.
For the agent workload (many small calls per task) this fixed floor outranks any plan choice; RFC 0047 (#791) makes this rollout step 7.
Ask
Attribute the floor per phase on the server: auth/token verification, settings resolution, version probe (object-store round trips and their latency from the serving region), compile-cache hit, table open by location+version, the scan itself, result encoding. The existing helpers::cost object-store counters and warm_read_cost.rs give the request counts; wall time per phase needs a tracing span or the additive usage object RFC 0047 (rfc: RFC 0047, search plan truth on engine v2 #791) proposes, which reports time per phase (authentication, target resolution, compilation, planning, execution, serialization).
Explain why snapshot costs ~0.6 s when a query costs ~0.35 s.
Cut what the attribution shows, in order of size. Caching of immutable version-pinned state is invariant-12-clean if that is where the time is; a second version probe or a per-request policy/token round trip would be a different fix.
Acceptance
A trivial served read's server-side time is reported per phase in the response (or a tracing export), and a cost test pins the object-store request count of that read at its current value so the floor cannot regress silently.
Measurement
GET /healthz(round trip only)omnigraph snapshot --json(metadata only)query -e 'match { $p: Person } return { $p.slug } limit 1'query -e 'match { $p: Person } return { count($p) as n }'(4,678 rows)Person { slug: $s }omnigraph version(CLI startup)So a trivial served read costs about 0.35 s, of which 0.10–0.15 s is the round trip. The remaining ~0.2 s is server-side and unattributed. It is not manifest reloading: the warm-read contract (
crates/omnigraph/tests/warm_read_cost.rs, since v0.7.1 #268) makes a warm same-branch read zero__manifestreads and one version probe.snapshotbeing slower than a query is itself unexplained.For the agent workload (many small calls per task) this fixed floor outranks any plan choice; RFC 0047 (#791) makes this rollout step 7.
Ask
helpers::costobject-store counters andwarm_read_cost.rsgive the request counts; wall time per phase needs a tracing span or the additiveusageobject RFC 0047 (rfc: RFC 0047, search plan truth on engine v2 #791) proposes, which reports time per phase (authentication, target resolution, compilation, planning, execution, serialization).snapshotcosts ~0.6 s when a query costs ~0.35 s.Acceptance
A trivial served read's server-side time is reported per phase in the response (or a tracing export), and a cost test pins the object-store request count of that read at its current value so the floor cannot regress silently.