Alexey Serbin has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/12324 )

Change subject: [tools] KUDU-2557 fix flake in TwoConcurrentRebalancers test
......................................................................

[tools] KUDU-2557 fix flake in TwoConcurrentRebalancers test

This patch addresses KUDU-2557, fixing an no-progress issue
if a tablet's Raft configuration with the source replica being
a leader eventually gets an extra voter replica due to multiple
rebalancer tools running concurrently.

Prior to this patch, once a tablet with the target replication factor
of 3 had gotten the following configuration, neither of concurrent
rebalancer tools could make any forward progress:

  A (VL) REPLACE=true
  B (V)
  C (V)
  D (V)

This patch introduces a new semantic for a move operation
for the intra-location rebalancing, where an empty (or absent)
UUID of the target tserver means 'just remove the source replica'.
Also, an extra logic has been introduced into the CheckCompleteMove()
utility function to handle the new replica move semantic described
above.  With that, when the rebalancer observes a tablet's
configuration with more voter replicas than the tablet's target
replication factor, it schedules an operation to remove the source
replica, which is perfectly aligned with the nature of the greedy
rebalancing algorithm.

These new provisions help to resolve the no-progress issue
described above.

Change-Id: If5e28f4b644b1549549f50a322c1d7ef376122d3
Reviewed-on: http://gerrit.cloudera.org:8080/12324
Tested-by: Kudu Jenkins
Reviewed-by: Will Berkeley <[email protected]>
---
M src/kudu/tools/ksck.cc
M src/kudu/tools/ksck.h
M src/kudu/tools/kudu-tool-test.cc
M src/kudu/tools/rebalancer.cc
M src/kudu/tools/tool_replica_util.cc
5 files changed, 71 insertions(+), 28 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Will Berkeley: Looks good to me, approved

--
To view, visit http://gerrit.cloudera.org:8080/12324
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: If5e28f4b644b1549549f50a322c1d7ef376122d3
Gerrit-Change-Number: 12324
Gerrit-PatchSet: 3
Gerrit-Owner: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Andrew Wong <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Will Berkeley <[email protected]>

Reply via email to