[iris] Cache autoscaler pending hints per evaluate() cycle#4848
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b0b1d1045f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@claude rebase to main pls |
|
Claude finished @rjpower's task in 1m 31s —— View job Rebase to main ✅
Summary: Rebased onto No code changes made, so no tests were run. The outstanding Codex review comment about ordering around |
GetJobStatus rebuilt the full AutoscalerStatus proto on every dashboard poll, re-running routing_decision_to_proto over every demand entry and unmet entry. Cache the routing-decision proto and derived pending-hint dict on Autoscaler, invalidated in evaluate(). Fixes #4844
b0b1d10 to
3a2e498
Compare
The hint was dropped from GetJobStatus because rebuilding the full routing table per call was 35% of wall time. #4848 now caches the per-job hint dict per evaluate() cycle, so the lookup is a single dict get — attach this job's hint without serializing the routing decision.
GetJobStatus rebuilt the full AutoscalerStatus proto on every dashboard poll, re-running routing_decision_to_proto over every demand entry and unmet entry. Cache the routing-decision proto and derived pending-hint dict on Autoscaler, invalidated in evaluate(). Repeated polls between scheduling cycles now hit cached objects instead of reserializing the whole plan. Fixes #4844