You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@helix.apache.org by Kanak Biscuitwala <ka...@apache.org> on 2014/01/21 22:12:02 UTC

Re: Review Request 16402: [HELIX-345] Speed up the controller pipelines for 0.7

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16402/
-----------------------------------------------------------

(Updated Jan. 21, 2014, 1:11 p.m.)


Review request for helix, Zhen Zhang and Kishore Gopalakrishna.


Changes
-------

This turned into a large change for 0.7.x:

- Cache messages
- Get ideal state, live instance, and instance config changes directly from the callback
- Only read and write new properties (e.g. resource assignments) when absolutely necessary
- Cache rebalancer instances across pipeline runs (necessary to prevent multiple init calls as well)
- Stop reading things like stats and alerts
- Reduce the amount of conversions between string maps and typed maps
- Fix test issues that were exposed


Bugs: HELIX-345


Repository: helix-git


Description
-------

Optimized the following:
  - cached messages across pipeline runs
  - cached the HelixRebalancer instance for each resource
  - spawned threads to read resources and participants in parallel
  - started using caching and batching when persisting resource assignments
  - instrumented all pipeline stages with the timing logs

commit 5758421ce71c37118423a543bf15569f4c697019
Author: Kanak Biscuitwala <ka...@apache.org>
Date:   Thu Dec 19 13:52:56 2013 -0800

    [HELIX-345] Speed up the controller pipelines for 0.7

:100644 100644 36c7aaa... 38da1b9... M	helix-core/src/main/java/org/apache/helix/api/accessor/ClusterAccessor.java
:100644 100644 ec812b2... fcbf45f... M	helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java
:100644 100644 532ecb5... 6cdd304... M	helix-core/src/main/java/org/apache/helix/controller/stages/CompatibilityCheckStage.java
:100644 100644 8235173... a888dc7... M	helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java
:100644 100644 ef5a5fd... 97734a6... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageGenerationStage.java
:100644 100644 966160c... 0ce132b... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageSelectionStage.java
:100644 100644 764b422... f941826... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageThrottleStage.java
:100644 100644 45fc355... fd37a2f... M	helix-core/src/main/java/org/apache/helix/controller/stages/PersistAssignmentStage.java
:100644 100644 7c2cc0f... ece4209... M	helix-core/src/main/java/org/apache/helix/controller/stages/PersistContextStage.java
:100644 100644 2279d76... 378eb61... M	helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java
:100644 100644 5b75535... f141aa3... M	helix-core/src/main/java/org/apache/helix/controller/stages/ResourceComputationStage.java
:100644 100644 470de2c... fbc75be... M	helix-core/src/main/java/org/apache/helix/controller/stages/ResourceValidationStage.java
:100644 100644 c48f156... 5a4bd2d... M	helix-core/src/main/java/org/apache/helix/controller/stages/StatsAggregationStage.java
:100644 100644 471530c... a530836... M	helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java
:100644 100644 9ec1ef9... 2d577ca... M	helix-core/src/main/java/org/apache/helix/tools/YAMLClusterSetup.java
:100644 100644 919eb00... a89d27f... M	helix-core/src/test/java/org/apache/helix/Mocks.java


Diffs (updated)
-----

  helix-core/src/main/java/org/apache/helix/ConfigAccessor.java f46e537 
  helix-core/src/main/java/org/apache/helix/api/Cluster.java 98072d1 
  helix-core/src/main/java/org/apache/helix/api/accessor/ClusterAccessor.java 36c7aaa 
  helix-core/src/main/java/org/apache/helix/api/accessor/ResourceAccessor.java 80c5b16 
  helix-core/src/main/java/org/apache/helix/api/config/ClusterConfig.java 22a1528 
  helix-core/src/main/java/org/apache/helix/controller/GenericHelixController.java 9fef2da 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/FullAutoRebalancer.java 0c55d45 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/RebalancerRef.java 974222d 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/CustomRebalancerConfig.java 73c3ccc 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/FullAutoRebalancerConfig.java 828d509 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/PartitionedRebalancerConfig.java 2c9769d 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/RebalancerConfigHolder.java 8581732 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/SemiAutoRebalancerConfig.java bfc3309 
  helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java ec812b2 
  helix-core/src/main/java/org/apache/helix/controller/stages/ClusterDataCache.java 6f09d26 
  helix-core/src/main/java/org/apache/helix/controller/stages/CompatibilityCheckStage.java 532ecb5 
  helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java 8235173 
  helix-core/src/main/java/org/apache/helix/controller/stages/ExternalViewComputeStage.java 977b661 
  helix-core/src/main/java/org/apache/helix/controller/stages/MessageGenerationStage.java ef5a5fd 
  helix-core/src/main/java/org/apache/helix/controller/stages/MessageSelectionStage.java 966160c 
  helix-core/src/main/java/org/apache/helix/controller/stages/MessageThrottleStage.java 764b422 
  helix-core/src/main/java/org/apache/helix/controller/stages/PersistAssignmentStage.java 45fc355 
  helix-core/src/main/java/org/apache/helix/controller/stages/PersistContextStage.java 7c2cc0f 
  helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java 2279d76 
  helix-core/src/main/java/org/apache/helix/controller/stages/ResourceComputationStage.java 5b75535 
  helix-core/src/main/java/org/apache/helix/controller/stages/ResourceValidationStage.java 470de2c 
  helix-core/src/main/java/org/apache/helix/controller/stages/TaskAssignmentStage.java bc2ee50 
  helix-core/src/main/java/org/apache/helix/controller/strategy/AutoRebalanceStrategy.java bff7e46 
  helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java 471530c 
  helix-core/src/main/java/org/apache/helix/model/IdealState.java 173e251 
  helix-core/src/main/java/org/apache/helix/model/ResourceAssignment.java 6da3dc2 
  helix-core/src/main/java/org/apache/helix/model/ResourceConfiguration.java 8c5b863 
  helix-core/src/main/java/org/apache/helix/task/TaskRebalancer.java d1bce56 
  helix-core/src/main/java/org/apache/helix/task/TaskUtil.java a9428c6 
  helix-core/src/main/java/org/apache/helix/tools/ClusterExternalViewVerifier.java a0959cc 
  helix-core/src/main/java/org/apache/helix/tools/ClusterStateVerifier.java 1563769 
  helix-core/src/main/java/org/apache/helix/tools/YAMLClusterSetup.java 9ec1ef9 
  helix-core/src/test/java/org/apache/helix/Mocks.java 919eb00 
  helix-core/src/test/java/org/apache/helix/api/TestNewStages.java ab4ead0 
  helix-core/src/test/java/org/apache/helix/controller/stages/TestRebalancePipeline.java 2e17ad3 
  helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceValidationStage.java ece46ff 
  helix-core/src/test/java/org/apache/helix/integration/TestSchedulerMessage.java 30f5807 
  helix-core/src/test/java/org/apache/helix/integration/TestUserDefRebalancerCompatibility.java 27004fe 

Diff: https://reviews.apache.org/r/16402/diff/


Testing
-------

Tests pass locally. Reading the cluster is up to 30% faster.


Thanks,

Kanak Biscuitwala


Re: Review Request 16402: [HELIX-345] Speed up the controller pipelines for 0.7

Posted by Zhen Zhang <ne...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16402/#review34896
-----------------------------------------------------------

Ship it!


Ship It!

- Zhen Zhang


On Feb. 3, 2014, 6:47 p.m., Kanak Biscuitwala wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/16402/
> -----------------------------------------------------------
> 
> (Updated Feb. 3, 2014, 6:47 p.m.)
> 
> 
> Review request for helix, Zhen Zhang and Kishore Gopalakrishna.
> 
> 
> Bugs: HELIX-345
> 
> 
> Repository: helix-git
> 
> 
> Description
> -------
> 
> Optimized the following:
>   - cached messages across pipeline runs
>   - cached the HelixRebalancer instance for each resource
>   - spawned threads to read resources and participants in parallel
>   - started using caching and batching when persisting resource assignments
>   - instrumented all pipeline stages with the timing logs
> 
> commit 5758421ce71c37118423a543bf15569f4c697019
> Author: Kanak Biscuitwala <ka...@apache.org>
> Date:   Thu Dec 19 13:52:56 2013 -0800
> 
>     [HELIX-345] Speed up the controller pipelines for 0.7
> 
> :100644 100644 36c7aaa... 38da1b9... M	helix-core/src/main/java/org/apache/helix/api/accessor/ClusterAccessor.java
> :100644 100644 ec812b2... fcbf45f... M	helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java
> :100644 100644 532ecb5... 6cdd304... M	helix-core/src/main/java/org/apache/helix/controller/stages/CompatibilityCheckStage.java
> :100644 100644 8235173... a888dc7... M	helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java
> :100644 100644 ef5a5fd... 97734a6... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageGenerationStage.java
> :100644 100644 966160c... 0ce132b... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageSelectionStage.java
> :100644 100644 764b422... f941826... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageThrottleStage.java
> :100644 100644 45fc355... fd37a2f... M	helix-core/src/main/java/org/apache/helix/controller/stages/PersistAssignmentStage.java
> :100644 100644 7c2cc0f... ece4209... M	helix-core/src/main/java/org/apache/helix/controller/stages/PersistContextStage.java
> :100644 100644 2279d76... 378eb61... M	helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java
> :100644 100644 5b75535... f141aa3... M	helix-core/src/main/java/org/apache/helix/controller/stages/ResourceComputationStage.java
> :100644 100644 470de2c... fbc75be... M	helix-core/src/main/java/org/apache/helix/controller/stages/ResourceValidationStage.java
> :100644 100644 c48f156... 5a4bd2d... M	helix-core/src/main/java/org/apache/helix/controller/stages/StatsAggregationStage.java
> :100644 100644 471530c... a530836... M	helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java
> :100644 100644 9ec1ef9... 2d577ca... M	helix-core/src/main/java/org/apache/helix/tools/YAMLClusterSetup.java
> :100644 100644 919eb00... a89d27f... M	helix-core/src/test/java/org/apache/helix/Mocks.java
> 
> 
> Diffs
> -----
> 
>   helix-core/src/main/java/org/apache/helix/ConfigAccessor.java f46e537 
>   helix-core/src/main/java/org/apache/helix/api/Cluster.java 98072d1 
>   helix-core/src/main/java/org/apache/helix/api/accessor/ClusterAccessor.java 36c7aaa 
>   helix-core/src/main/java/org/apache/helix/api/accessor/ResourceAccessor.java 80c5b16 
>   helix-core/src/main/java/org/apache/helix/api/config/ClusterConfig.java 22a1528 
>   helix-core/src/main/java/org/apache/helix/controller/GenericHelixController.java 9fef2da 
>   helix-core/src/main/java/org/apache/helix/controller/rebalancer/FullAutoRebalancer.java 0c55d45 
>   helix-core/src/main/java/org/apache/helix/controller/rebalancer/RebalancerRef.java 974222d 
>   helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/CustomRebalancerConfig.java 73c3ccc 
>   helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/FullAutoRebalancerConfig.java 828d509 
>   helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/PartitionedRebalancerConfig.java 2c9769d 
>   helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/RebalancerConfigHolder.java 8581732 
>   helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/SemiAutoRebalancerConfig.java bfc3309 
>   helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java ec812b2 
>   helix-core/src/main/java/org/apache/helix/controller/stages/ClusterDataCache.java 6f09d26 
>   helix-core/src/main/java/org/apache/helix/controller/stages/CompatibilityCheckStage.java 532ecb5 
>   helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java 8235173 
>   helix-core/src/main/java/org/apache/helix/controller/stages/ExternalViewComputeStage.java 977b661 
>   helix-core/src/main/java/org/apache/helix/controller/stages/MessageGenerationStage.java ef5a5fd 
>   helix-core/src/main/java/org/apache/helix/controller/stages/MessageSelectionStage.java 966160c 
>   helix-core/src/main/java/org/apache/helix/controller/stages/MessageThrottleStage.java 764b422 
>   helix-core/src/main/java/org/apache/helix/controller/stages/PersistAssignmentStage.java 45fc355 
>   helix-core/src/main/java/org/apache/helix/controller/stages/PersistContextStage.java 7c2cc0f 
>   helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java 2279d76 
>   helix-core/src/main/java/org/apache/helix/controller/stages/ResourceComputationStage.java 5b75535 
>   helix-core/src/main/java/org/apache/helix/controller/stages/ResourceValidationStage.java 470de2c 
>   helix-core/src/main/java/org/apache/helix/controller/stages/TaskAssignmentStage.java bc2ee50 
>   helix-core/src/main/java/org/apache/helix/controller/strategy/AutoRebalanceStrategy.java bff7e46 
>   helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java 471530c 
>   helix-core/src/main/java/org/apache/helix/model/IdealState.java 173e251 
>   helix-core/src/main/java/org/apache/helix/model/ResourceAssignment.java 6da3dc2 
>   helix-core/src/main/java/org/apache/helix/model/ResourceConfiguration.java 8c5b863 
>   helix-core/src/main/java/org/apache/helix/task/TaskRebalancer.java d1bce56 
>   helix-core/src/main/java/org/apache/helix/task/TaskUtil.java a9428c6 
>   helix-core/src/main/java/org/apache/helix/tools/ClusterExternalViewVerifier.java a0959cc 
>   helix-core/src/main/java/org/apache/helix/tools/ClusterStateVerifier.java 1563769 
>   helix-core/src/main/java/org/apache/helix/tools/YAMLClusterSetup.java 9ec1ef9 
>   helix-core/src/test/java/org/apache/helix/Mocks.java 919eb00 
>   helix-core/src/test/java/org/apache/helix/api/TestNewStages.java ab4ead0 
>   helix-core/src/test/java/org/apache/helix/controller/stages/TestRebalancePipeline.java 2e17ad3 
>   helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceValidationStage.java ece46ff 
>   helix-core/src/test/java/org/apache/helix/integration/TestReelectedPipelineCorrectness.java PRE-CREATION 
>   helix-core/src/test/java/org/apache/helix/integration/TestSchedulerMessage.java 30f5807 
>   helix-core/src/test/java/org/apache/helix/integration/TestUserDefRebalancerCompatibility.java 27004fe 
> 
> Diff: https://reviews.apache.org/r/16402/diff/
> 
> 
> Testing
> -------
> 
> Tests pass locally. Reading the cluster is up to 30% faster.
> 
> 
> Thanks,
> 
> Kanak Biscuitwala
> 
>


Re: Review Request 16402: [HELIX-345] Speed up the controller pipelines for 0.7

Posted by Kanak Biscuitwala <ka...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16402/
-----------------------------------------------------------

(Updated Feb. 3, 2014, 10:47 a.m.)


Review request for helix, Zhen Zhang and Kishore Gopalakrishna.


Changes
-------

Updated the diff to reflect the final changes in the 0.6 version. Unfortunately the full diff here is much larger than the 0.6 version for the following reasons:

- Need to make use of a global ClusterDataCache in the ClusterAccessor and the pipeline
- Caching rebalancer instances
- Fixing the issue where resource assignments were persisted unnecessarily and inefficiently
- Reducing the number of conversions between typed and string maps


Bugs: HELIX-345


Repository: helix-git


Description
-------

Optimized the following:
  - cached messages across pipeline runs
  - cached the HelixRebalancer instance for each resource
  - spawned threads to read resources and participants in parallel
  - started using caching and batching when persisting resource assignments
  - instrumented all pipeline stages with the timing logs

commit 5758421ce71c37118423a543bf15569f4c697019
Author: Kanak Biscuitwala <ka...@apache.org>
Date:   Thu Dec 19 13:52:56 2013 -0800

    [HELIX-345] Speed up the controller pipelines for 0.7

:100644 100644 36c7aaa... 38da1b9... M	helix-core/src/main/java/org/apache/helix/api/accessor/ClusterAccessor.java
:100644 100644 ec812b2... fcbf45f... M	helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java
:100644 100644 532ecb5... 6cdd304... M	helix-core/src/main/java/org/apache/helix/controller/stages/CompatibilityCheckStage.java
:100644 100644 8235173... a888dc7... M	helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java
:100644 100644 ef5a5fd... 97734a6... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageGenerationStage.java
:100644 100644 966160c... 0ce132b... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageSelectionStage.java
:100644 100644 764b422... f941826... M	helix-core/src/main/java/org/apache/helix/controller/stages/MessageThrottleStage.java
:100644 100644 45fc355... fd37a2f... M	helix-core/src/main/java/org/apache/helix/controller/stages/PersistAssignmentStage.java
:100644 100644 7c2cc0f... ece4209... M	helix-core/src/main/java/org/apache/helix/controller/stages/PersistContextStage.java
:100644 100644 2279d76... 378eb61... M	helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java
:100644 100644 5b75535... f141aa3... M	helix-core/src/main/java/org/apache/helix/controller/stages/ResourceComputationStage.java
:100644 100644 470de2c... fbc75be... M	helix-core/src/main/java/org/apache/helix/controller/stages/ResourceValidationStage.java
:100644 100644 c48f156... 5a4bd2d... M	helix-core/src/main/java/org/apache/helix/controller/stages/StatsAggregationStage.java
:100644 100644 471530c... a530836... M	helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java
:100644 100644 9ec1ef9... 2d577ca... M	helix-core/src/main/java/org/apache/helix/tools/YAMLClusterSetup.java
:100644 100644 919eb00... a89d27f... M	helix-core/src/test/java/org/apache/helix/Mocks.java


Diffs (updated)
-----

  helix-core/src/main/java/org/apache/helix/ConfigAccessor.java f46e537 
  helix-core/src/main/java/org/apache/helix/api/Cluster.java 98072d1 
  helix-core/src/main/java/org/apache/helix/api/accessor/ClusterAccessor.java 36c7aaa 
  helix-core/src/main/java/org/apache/helix/api/accessor/ResourceAccessor.java 80c5b16 
  helix-core/src/main/java/org/apache/helix/api/config/ClusterConfig.java 22a1528 
  helix-core/src/main/java/org/apache/helix/controller/GenericHelixController.java 9fef2da 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/FullAutoRebalancer.java 0c55d45 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/RebalancerRef.java 974222d 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/CustomRebalancerConfig.java 73c3ccc 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/FullAutoRebalancerConfig.java 828d509 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/PartitionedRebalancerConfig.java 2c9769d 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/RebalancerConfigHolder.java 8581732 
  helix-core/src/main/java/org/apache/helix/controller/rebalancer/config/SemiAutoRebalancerConfig.java bfc3309 
  helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java ec812b2 
  helix-core/src/main/java/org/apache/helix/controller/stages/ClusterDataCache.java 6f09d26 
  helix-core/src/main/java/org/apache/helix/controller/stages/CompatibilityCheckStage.java 532ecb5 
  helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java 8235173 
  helix-core/src/main/java/org/apache/helix/controller/stages/ExternalViewComputeStage.java 977b661 
  helix-core/src/main/java/org/apache/helix/controller/stages/MessageGenerationStage.java ef5a5fd 
  helix-core/src/main/java/org/apache/helix/controller/stages/MessageSelectionStage.java 966160c 
  helix-core/src/main/java/org/apache/helix/controller/stages/MessageThrottleStage.java 764b422 
  helix-core/src/main/java/org/apache/helix/controller/stages/PersistAssignmentStage.java 45fc355 
  helix-core/src/main/java/org/apache/helix/controller/stages/PersistContextStage.java 7c2cc0f 
  helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java 2279d76 
  helix-core/src/main/java/org/apache/helix/controller/stages/ResourceComputationStage.java 5b75535 
  helix-core/src/main/java/org/apache/helix/controller/stages/ResourceValidationStage.java 470de2c 
  helix-core/src/main/java/org/apache/helix/controller/stages/TaskAssignmentStage.java bc2ee50 
  helix-core/src/main/java/org/apache/helix/controller/strategy/AutoRebalanceStrategy.java bff7e46 
  helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java 471530c 
  helix-core/src/main/java/org/apache/helix/model/IdealState.java 173e251 
  helix-core/src/main/java/org/apache/helix/model/ResourceAssignment.java 6da3dc2 
  helix-core/src/main/java/org/apache/helix/model/ResourceConfiguration.java 8c5b863 
  helix-core/src/main/java/org/apache/helix/task/TaskRebalancer.java d1bce56 
  helix-core/src/main/java/org/apache/helix/task/TaskUtil.java a9428c6 
  helix-core/src/main/java/org/apache/helix/tools/ClusterExternalViewVerifier.java a0959cc 
  helix-core/src/main/java/org/apache/helix/tools/ClusterStateVerifier.java 1563769 
  helix-core/src/main/java/org/apache/helix/tools/YAMLClusterSetup.java 9ec1ef9 
  helix-core/src/test/java/org/apache/helix/Mocks.java 919eb00 
  helix-core/src/test/java/org/apache/helix/api/TestNewStages.java ab4ead0 
  helix-core/src/test/java/org/apache/helix/controller/stages/TestRebalancePipeline.java 2e17ad3 
  helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceValidationStage.java ece46ff 
  helix-core/src/test/java/org/apache/helix/integration/TestReelectedPipelineCorrectness.java PRE-CREATION 
  helix-core/src/test/java/org/apache/helix/integration/TestSchedulerMessage.java 30f5807 
  helix-core/src/test/java/org/apache/helix/integration/TestUserDefRebalancerCompatibility.java 27004fe 

Diff: https://reviews.apache.org/r/16402/diff/


Testing
-------

Tests pass locally. Reading the cluster is up to 30% faster.


Thanks,

Kanak Biscuitwala