Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is a messy commit: 1) There are a ton of TODOs, a ton of code marked to be deprecated, and a lot of gymnastics to continue using data structures that ought to be simplified or removed. All of this is necessary until the RebalanceController is switched to use the RebalancePlan, and until the abortable rebalance work and this work are merged to master. Cleaning up shared data structures is too high risk while on separate branches. 2) Some of the RebalanceTest tests are currently failing. Going to debug and fix in next commit. Commit notes: RebalanceClusterPlan - renamed cluster members to be target & final rather than current & target - determines batch plan at construction time - added batchPlan() method that - is more clear than prior planning method - optimized to do n-ary to n-ary migration within a cluster so that only new zones require cross zone moves RebalancePlan - minor change for method name change StoreRoutingPlan - added internal member & method to track all nary-partition-stores per node - get zone replica type methods that take partition id as input RebalanceUtils - added / refactored suite of methods that validate pairs of clusters (current&target, current&final, target&final) There are tests missing at this point in development: - simple & basic tests of RebalancePlan - test StoreRoutingPlan.getNaryPartitionIds (and possibly other methods too) - tests for RebalanceUtils.validate.* methods
- Loading branch information