[Core][DP] Rotate load-balancer tie-break to avoid systematic engine bias (#47420)
Signed-off-by: mayuyuace <qiming1.zhang@intel.com>
Qiming Zhang committed
Jul 6, 2026 at 00:09 UTC
2fa10566e3b9a50e56e6464a3469091b073ab592
1 file changed
+6
vllm/v1/engine/core_client.py
+6
@@ -1434,6 +1434,12 @@ class DPLBAsyncMPClient(DPAsyncMPClient):
1434
# Increment local waiting count for better balancing between stats
1435
# updates from the coordinator (which happen every 100ms).
1436
current_counts[eng_index][0] += self.client_count
1437
+ # Rotate the scan start so that ties (equal scores, e.g. right
1438
+ # after a coordinator stats reset when engines look equally loaded)
1439
+ # don't systematically favor the same engine. This removes the
1440
+ # fixed tie-break bias without affecting load-aware decisions when
1441
+ # scores actually differ.
1442
+ self.eng_start_index = (self.eng_start_index + 1) % num_engines
1443
1444
chosen_engine = self.core_engines[eng_index]
1445
# Record which engine is chosen for this request, to handle aborts.