Skip to content

feat(gqt): add per-step object-store measurement under DST - #794

Merged
azimafroozeh merged 2 commits into
ModernRelay:mainfrom
azimafroozeh:gqt-measure-mode-main
Sep 28, 2026
Merged

azimafroozeh merged 2 commits into
ModernRelay:mainfrom
azimafroozeh:gqt-measure-mode-main

Conversation

@azimafroozeh

Copy link
Copy Markdown
Collaborator

What & why

Add --measure to omnigraph-gqt so existing .gqt cases report object-store work per step under DST. This makes request costs, repeated reads and work after publication visible when comparing engine changes.

  • Record requests, repeated reads, bytes and requests after publication. Separate setup, case steps and runner checks, including steps with zero requests. Group requests by object-store operation and engine phase.
  • Report phase timing and parallelism under --model unit|s3-like|local. Request counts participate in deterministic replay checks; timing, bytes and request logs remain measurement-only.
  • Print tables and save a TSV alongside the invocation report. Accept multiple case files or directories from any location, with --artifacts <dir> to choose the output directory.
  • Compare counts with an optional --baseline <path>. --write-baseline replaces only the measured case/environment/seed rows. Failed cases do not update their baseline rows; count differences are reported without failing the case.

Backing issue / RFC

Related to the operation-scoped cost evidence in the self-contained server testing RFC. No accepted backing issue or RFC is recorded for this change.

Checklist

  • Change is focused on GQT measurement and reporting.
  • Tests cover request accounting, phase timing, zero-request steps and baseline scoping.
  • GQT README and developer testing docs updated.
  • Author review against docs/dev/invariants.md.

Local verification

Recorded on the final implementation tree on 2026-09-28; not rerun for this description:

  • cargo test -p omnigraph-gqt --locked: 174 unit tests, 197 corpus cases and 25 other runner tests passed.
  • cargo clippy -p omnigraph-gqt --all-targets -- -D warnings: passed.
  • cargo fmt --all --check, scripts/check-docs.py and scripts/check-agents-md.sh: passed.

git diff --check upstream/main...HEAD also passed while preparing this description.

Notes for reviewers

Measurement uses the existing object-store and decision seams in DST workers. Direct-engine environments do not record measurements. Latency and parallelism figures are model estimates, not wall-clock benchmarks. The engine and case format are unchanged; no benchmark cases or baseline data are included.

@azimafroozeh
azimafroozeh added this pull request to the merge queue Sep 28, 2026
Merged via the queue into ModernRelay:main with commit 15a7c03 Sep 28, 2026
30 checks passed
ragnorc added a commit that referenced this pull request Sep 30, 2026
…#794

#783 is merged, so its dependency leaves blocked_on. The admission matrix's
outcome cells become .gqt concurrent blocks, with commit-count assertions kept
in Rust. The concurrent block cannot name a spawned task's requests, so where
the publisher's requests are attributed is now an unresolved question with a
recommendation. #813's captured-authority reuse is noted.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant