Repository navigation
[Docs] Damp per-revision traffic status churn with trafficWeightDeadbandPercent: what the band never suppresses - #209
Merged
Conversation
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
github-actions
Bot
requested review from
XinyueZhang369,
pallasathena92 and
slin1237
as code owners
October 31, 2026 16:41
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
Contributor
Author
|
Documentation maintenance: working. Unsuccessful content rounds: 0/3. Operational attempts: 1/3. Head: Repair/validation in progress; no merge authorization implied. Human review threads and CODEOWNER approval remain under repository policy. |
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.
What this PR does
My large OMENative components rewrite status.components..traffic and re-enqueue their HTTPRoute every few seconds as pods blip Pending between reconciles — what does ome.controller.coordination.trafficWeightDeadbandPercent do, what is its default, and which changes does the band never suppress?
Why we need it
Source change: ome-projects/ome@eb2686d
From commit 145 (#804, InferenceService controller overhaul), whose patch (read today) introduced TrafficWithinDeadband and the trafficWeightDeadbandPercent config end to end (definition and gate at patch hunks 60150-60178 and 52642, tests at 60481-60535). Current code verified today: charts/ome-resources/values.yaml:452-462 — ome.controller.coordination.trafficWeightDeadbandPercent, chart default 0 (band off, 'write on any diff — the prior behavior'), rendered into the coordination entry of the inferenceservice-config ConfigMap by templates/ome-controller/configmap.yaml:77-81; pkg/controller/v1beta1/controllerconfig/configmap.go:511-527 — the per-revision hysteresis band applied to the pod-proportional traffic writer: a recomputed weight set whose every per-revision percent moves by strictly less than the band from what Status.Components..Traffic already holds is treated as pod-count jitter, and the status write plus the HTTPRoute re-enqueue it triggers is suppressed; intentionally no in-code default. It is hot configuration: inferenceservice/controller.go:1060-1081 loads the coordination config through the config cache 'on every pass' (so it is correctly absent from configure-the-controller.md's needs-a-restart list at :175-182). The gate: coordination/reconciler.go:575-584 writes traffic only when TrafficDiffersMeaningfully AND NOT TrafficWithinDeadband; coordination/traffic.go:241-272 pins what the band never suppresses — a changed revision set, a LatestRevision flip, and terminal/boundary convergence (any revision moving to exactly 0 or 100 is always written, so a band larger than the final canary step cannot stick traffic at 95/5) — and that a sustained ratio change always converges because the band is per-revision, not cumulative. Tests in today's checkout: coordination/traffic_test.go:249-360 (blip suppressed; sustained change converges; zero/negative disables; revision-set change, terminal convergence and LatestRevision flip never suppressed). Docs gap verified today: a repo-wide grep for trafficWeightDeadbandPercent and deadband under src/lib/content matches nothing (rollout-groups.md:109 documents only the sibling field defaultRatioTolerancePercent); configure-the-controller.md has a tuning section for every neighboring pacing knob — scale batches (:218), prefill-decode roll (:287), canary re-checks (:323) — but nothing for the coordination entry's band, and canary-progression.md's Traffic weight in status section documents the written weights with no note that a configured band can hold sub-band updates. One independent concern: one operator tunable with one suppression rule and its never-suppressed exceptions, from the commit that added it, as a section on the page that owns ome.controller tunables. configure-the-controller.md is also listed by the pending rollouts item rollout-plan-size-cap (a different concern: an admission cap) — the workflow selects one per available file and queues the rest; do not combine. Distinct from merged #185 (scale-down pacing on the same page) and #202/#199 (metric series).
Scope: operations / traffic-weight-deadband. Other concerns are deferred.
How to test
git diff --checkand website content/link tests, type checks, lint and production build.Checklist
git commit -s)pnpm lint && pnpm check && pnpm test && pnpm buildpasses (run by the publisher on an isolated copy)