perf: add REX-M8.7 durable profiling - #46
Conversation
rgehrsitz
left a comment
There was a problem hiding this comment.
PR46 review
Reviewed the full PR46 diff on the PR head fa19721: scripts/durable-profile/run.py + README, pkg/runtime/durable_profile_test.go, the m8.7 evidence bundle (metadata, profile-metadata, profile-top, summary), and roadmap/m8.6 README updates. No production runtime, artifact-format, or dependency changes are included.
Verified locally:
- go vet ./pkg/runtime ./pkg/store clean; python3 -m py_compile scripts/durable-profile/run.py clean.
- metadata.json sha256 for durable_profile_test.go and run.py match the checked-in files.
- Cross-checked the results table in docs/baselines/rex-m8.7/README.md against summary.json: every range (ev/s, service p50/p95/p99, end-to-end p99, commands/event 44/143/44.017/44.055, alloc 50.3/457.x/51.4 KB, fault paths 0.82-2.89 ms and 115.7-158.4 ms) matches the retained 15 rows exactly. Skew partition counts are [900, 34, 33, 33] as documented.
- Measurement boundaries check out: warmup (100 ev) runs before commandStart/GC/start and is excluded from commands, allocations, and samples; the trailing INFO is corrected with the -1; producer XADDs and the verification-phase commands are outside the recorded windows; the 110 ms injected pause lands at sample rank ~1000 so it is excluded from p99 but correctly depresses owner-loss throughput as documented.
No correctness or evidence-integrity defects found. Four comments below are all minor; the percentiles guard and the redis-cli discovery are the only ones that would hard-fail a future run.
|
Addressed all five review threads in 07d7dfc and 7f55acc:\n\n- guarded empty percentiles and zero service rates, with strict configured/reported/total/per-partition count validation\n- added explicit Redis CLI selection, PATH lookup, early executable validation, version capture, and symlink-safe invocation\n- derived aggregate throughput from the validated drained event count\n- centralized measurement-source hashing and the untracked profile-test allowlist\n- regenerated normal, race, and CPU-profile evidence and documented the expected metadata revision/status delta\n\nClaude was consulted on the review fixes; its follow-up findings about executable lookup, evidence/table consistency, provenance, and Redis symlink behavior were incorporated.\n\nFinal local validation: go test -count=1 ./..., go test -race -count=1 ./..., go vet ./..., go build ./..., Python compilation, source-hash verification, and git diff --check. |
REX-M8.7 needs durable Redis evidence before REX can justify concurrent partition workers. This adds a reproducible opt-in harness that runs sparse, dense, balanced, 90/10-skew, completion-retry, and real lease-loss scenarios against isolated Redis processes while checking ordering, deduplication, exact ownership, successor takeover, and stale-owner fencing.
The checked-in evidence records aggregate and per-partition latency/throughput, Redis command counts, process allocations, and CPU profiles. Local timing varied too widely for a capacity decision, so the roadmap keeps production concurrency gated and defines the controlled 1/2/4-worker experiment required next. No production runtime behavior, artifact format, or dependency changes are included.
Claude reviewed the harness and evidence twice. Its findings drove final-source reruns, per-scenario isolation, equal-length fixture keys, warmup, corrected command accounting, clearer partition metrics, stronger fencing assertions, and explicit measurement limits; the follow-up found no remaining correctness or evidence-integrity defect.
Test plan
go test -count=1 ./...go test -race -count=1 ./...go vet ./...go build ./...python3 -m py_compile scripts/durable-profile/run.pygit diff --check