Gabriella Lotz has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/23755


Change subject: auto_rebalancer: enforce max_moves_per_server per tserver
......................................................................

auto_rebalancer: enforce max_moves_per_server per tserver

Previously, auto_rebalancing_max_moves_per_server was enforced
globally, allowing individual tservers to temporarily exceed the
limit. This could disrupt workloads on those servers.

Implement per-tserver move tracking with a moves_per_tserver_ map
that is updated when moves are scheduled in ExecuteMoves() and
decremented when they complete in CheckReplicaMovesCompleted().
GetMovesUsingRebalancingAlgo() now checks per-tserver limits before
scheduling moves.

Also fix TestMaxMovesPerServer flakiness by using ASSERT_EVENTUALLY
to handle race conditions during metric sampling, and verify limits
per-tserver in addition to aggregate.
Disabled leader rebalancing during the test to prevent interference,
as the test only verifies replica move limits.

Addresses TODO at auto_rebalancer.cc:338.

Tested auto_rebalancer-test.cc by running it a 1000 times in debug
mode on dist-test and all tests were successful.

Change-Id: Ic1b73045719dc69cc9e3353d318b7381f144a20d
---
M src/kudu/master/auto_rebalancer-test.cc
M src/kudu/master/auto_rebalancer.cc
M src/kudu/master/auto_rebalancer.h
3 files changed, 109 insertions(+), 15 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/55/23755/1
--
To view, visit http://gerrit.cloudera.org:8080/23755
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic1b73045719dc69cc9e3353d318b7381f144a20d
Gerrit-Change-Number: 23755
Gerrit-PatchSet: 1
Gerrit-Owner: Gabriella Lotz <[email protected]>

Reply via email to