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]>
