[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.