Repository navigation
benchmarking: write the turnover window with the whole-run keys - #3789
Merged
Max Smythe (maxsmythe) merged 1 commit intoNov 11, 2026
Merged
Max Smythe (maxsmythe) merged 1 commit into
Max Smythe (maxsmythe) merged 1 commit into
Conversation
The turnover_window row keyed each request's counts by name, as requests_<name>, failures_<name> and rps_<name>. Tables that load stats.jsonl with the schema of the whole-run rows drop those keys, so readers of those tables see only whole-run rates, which include the fleet registration. Write one turnover_<name> row per request instead. Each has the request_count, failure_count, requests_per_s and failures_per_s keys of the whole-run rows, and the window bounds. Signed-off-by: Chenyi Wang <chenyiwang@google.com>
Max Smythe (maxsmythe)
approved these changes
Nov 11, 2026
Max Smythe (maxsmythe)
left a comment
Collaborator
There was a problem hiding this comment.
Awesome! LGTM
Collaborator
|
Should say that this is a benchmarking-only change |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In a turnover run, the whole-run Requests/s also divides by the time spent registering the fleet. A gVisor run with 2,000 sessions swapping at 10/s shows 8.1 ResumeActor/s, so the dashboards estimate the live window instead of reading it.
turnover_window.py already counts each request from the
turnover fill doneline to the end of the run. It writes those counts under per-request keys (requests_<name>,rps_<name>). Tables that load stats.jsonl with the schema of the whole-run rows drop those keys, so theturnover_windowrow reads as empty there.Write one
turnover_<name>row per request instead, with the whole-run keys (request_count,failure_count,requests_per_s,failures_per_s) and the window bounds. The swap rate is therequests_per_softurnover_TimeToWake.Tested with the benchmarking/locust unit tests under pytest, the way hack/verify/benchmarking-python.sh runs them.
I used an AI agent to draft the change, the test and this description, and reviewed them myself.