You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by hu...@apache.org on 2020/04/01 22:31:21 UTC

[helix] branch zooscalability_backup updated (e5c2f77 -> 71171a8)

This is an automated email from the ASF dual-hosted git repository.

hulee pushed a change to branch zooscalability_backup
in repository https://gitbox.apache.org/repos/asf/helix.git.


    from e5c2f77  Removed useless znodes to resolve dependency between test methods in TestZKUtil (#693)
     add 48cabc5  Bump jackson-databind from 2.9.5 to 2.9.10.1 in /helix-rest (#597)
     add db2e373  Integration test for controller connect and disconnect (#681)
     add ecf6bb8  Add workflow garbage collector  (#705)
     add bee3ed2  Merge Waged rebalancer branch code to master. (#724)
     add 2676f13  Revert "Merge Waged rebalancer branch code to master. (#724)"
     add aed6d7e  Define the WAGED rebalancer interfaces.
     add 786d238  Adding the configuration items of the WAGED rebalancer. (#348)
     add 253851a  Implement the WAGED rebalancer cluster model (#362)
     add 41aee1b  Change the rebalancer assignment record to be ResourceAssignment instead of IdealState. (#398)
     add d4d4941  Convert all the internal assignment state objects to be ResourceAssignment. (#399)
     add 28b65aa  Implement Cluster Model Provider. (#392)
     add f93aeb5  Add cluster level default instance config. (#413)
     add 4372acf  Add ChangeDetector interface and ResourceChangeDetector implementation (#388)
     add bc6d6f0  Redefine the hard/soft constraints (#422)
     add 73e8336  Refine the WAGED rebalancer related interfaces for integration (#431)
     add 3995879  Revert "Refine the WAGED rebalancer related interfaces for integration (#431)" (#437)
     add b273df4  Resubmit the change: Refine the WAGED rebalancer related interfaces for integration (#431)
     add 8cbfdce  Modify the expected change type from CONFIG to CLUSTER_CONFIG in the WAGED rebalancer. (#438)
     add ff82c34  Add special treatment for ClusterConfig
     add 27630a9  Record the replica objects in the AssignableNode in addition to the partition name (#440)
     add eb437c9  Add BucketDataAccessor for large writes
     add cf8520a  Implement the basic constraint based algorithm (#381)
     add 0895c0d  Validate the instance capacity/partition weight configuration while constructing the assignable instances (#451)
     add 34a2cf8  Implement the WAGED rebalancer with the limited functionality. (#443)
     add dd80b9e  HardConstraints Implementation and unit tests (#433)
     add a4010e2  Implement AssignmentMetadataStore (#453)
     add 63b45ff  Fix TestWagedRebalancer and add constructor in AssignmentMetadataStore
     add cf7b7a5  Implement one of the soft constraints (#450)
     add e49d26b  Add soft constraint: ResourcetopStateAntiAffinityConstraint (#465)
     add 536062d  Implement MaxCapacityUsageInstanceConstraint soft constraint (#463)
     add a07296a  Add soft constraint: ResourcePartitionAntiAffinityConstraint (#464)
     add de800d7  Improve ResourceTopStateAntiAffinityConstraint (#475)
     add 7a34f2c  Adjust the expected replica count according to fault zone count. (#476)
     add d2ffd00  PartitionMovementSoftConstraint Implementation (#474)
     add dcc4862  Add the remaining implementation of ConstraintBasedAlgorithmFactory (#478)
     add 3e0554b  Integrate the WAGED rebalancer with all the related components. (#466)
     add 7bb7f57  Separate AssignableNode properties by Immutable and Mutable (#485)
     add 71948ec  Add delayed rebalance and user-defined preference list features to the WAGED rebalancer. (#456)
     add 95a55d6  Enable maintenance mode for the WAGED rebalancer.
     add 43a9bce  Adjust the topology processing logic for instance to ensure backward compatibility.
     add 081b3f2  Load soft constraint weight from resources/properties file (#492)
     add 359d6de  Add latency metric components for WAGED rebalancer (#490)
     add b287fb5  Fixing rebalance cache issue and stablize the tests. (#510)
     add a318890  More strict partition weight validation while creating the cluster model. (#511)
     add 08bc164  Increase parallelism for ZkBucketDataAccessor (#506)
     add bc2d0cf  The WAGED rebalancer returns the previously calculated assignment on calculation failure (#514)
     add 2d1e8cf  Make log clearer after finishing calculateAssignment. (#531)
     add 285318a  Implement monitoring mbeans for the WAGED rebalancer. (#525)
     add afb19a1  Refine the rebalance scope calculating logic in the WAGED rebalancer. (#519)
     add b63a895  Make WagedRebalancer static by creating a ThreadLocal (#540)
     add f48f4d2  Change change detector to a regular field in the WAGED rebalancer instead of static threadlocal. (#543)
     add 3f237df  Refactor soft constraints to simply the algorithm and fix potential issues. (#520)
     add cd3de5a  Minor fix for the constraints related tests. (#545)
     add dcda863  Adjust the replica rebalance calculating ordering to avoid static order. (#535)
     add e27c6fa  Implement increment() method in CountMetric class. (#537)
     add f7df84c  Modify the ivy file to add the new math3 lib dependency. (#546)
     add 6e37673  Fix a missing parameter when the WAGED rebalancer init the change detector. (#547)
     add 76e0fc0  Add the new Rebalancer monitor domain to the active domain list. (#550)
     add dc40825  Refine ivy file config. The org were not configured correctly. (#551)
     add e5e3689  Use a deep copy of the new best possible assignment for measuring baseline divergence. (#542)
     add 2b3f9fa  Add max capacity usage metric for instance monitor. (#548)
     add c2b7ac7  Fix formula incorrection in the comment for measuring baseline divergence. (#559)
     add ae22186  Avoid redundant writes in AssignmentMetadataStore (#564)
     add 5691d3a  Filter resource map with ideal states for instance capacity metrics. (#574)
     add 0b1b337  Introduce Dry-run Waged Rebalancer for the verifiers and tests. (#573)
     add e93e050  Change ClusterConfig.setDefaultCapacityMap to be private. (#590)
     add 8a8478a  Add Java API for adding and validating resources for WAGED rebalancer (#570)
     add edc8a86  Change calculation for baseline divergence. (#598)
     add 435360f  Improve the WAGED rebalancer performance. (#586)
     add f4b67ae  Fix the unstable test TestZeroReplicaAvoidance. (#603)
     add 37fd496  Add REST API endpoints for WAGED Rebalancer (#611)
     add 6dbc725  Fix a potential issue in the ResourceChangeSnapshot. (#635)
     add 4c48d02  Simply and enhance the RebalanceLatencyGauge so it can be used in multi-threads. (#636)
     add 30695f0  Add new WAGED rebalancer config item "GLOBAL_REBALANCE_ASYNC_MODE". (#637)
     add a2771cb  Decouple the event type and the scheduled rebalance cache refresh option. (#638)
     add 75904ef  Improve the algorithm so it prioritizes the assignment to the idle nodes when the constraint evaluation results are the same (#651)
     add 39f3959  Refine the WAGED rebalancer to minimize the partial rebalance workload. (#639)
     add adfaf4e  Refine methods name and comments. (#664)
     add 6b73653  Asynchronously calculating the Baseline (#632)
     add fe4ecb8  Reorgnize the test case so the new WAGED expand cluster tests are not skipped. (#670)
     add a1557df  Fix the Helix rest tests by cleaning up the environment before testing. (#679)
     add feb2562  Add instance capacity gauge (#557)
     add eb40e15  Add resource partition weight gauge (#686)
     add 71c79fd  Add WAGED rebalancer reset method to clean up cached status. (#696)
     add ec3568d  Reset the WAGED rebalancer once the controller newly acquires leadership. (#690)
     add 85f246a  Fix the watcher leakage issue (#688)
     add 637e943  Fix the unstable test TestWagedRebalance.testRebalancerReset. (#735)
     add 2ba469d  Change the WAGED rebalancer missing error log to warning. (#740)
     add b227b3b  Add metrics-common, zookeeper-api, helix-common modules (#684)
     add afc62ab  Fix the flaky test (#749)
     add 12f11a3  Fix ConcurrentModification exception in Workflow Garbage Collection (#741)
     add 19811ea  Remove workflow garbage collection (#803)
     add 98a4be3  Fix the ConcurrentModificationException in ClusterEvent.java (#785)
     add 0f3c64b  Add system property options to config write size limit for ZNRecord Serializer (#809)
     add 496d573  Async write operation should not throw Exception for serializing error (#845)
     add 1747ac0  Fix type cast in TestRawZkClient (#853)
     add 89dfe91  Add logs and throw exceptions in getInstanceById (#858)
     add 3e264f0  Downgrade the log level to INFO when isInstanceSetup() fails. (#870)
     add fcf78cd  Generate cancellation message for currentState=null desiredState=DROPPED (#831)
     add 5de66f2  Update bump-up.command with metrics-common
     add 5dd01c0  Fix testInstancesStoppable_zoneBased (#880)
     add 26da7bf  Change helix-core's ivy import for commons-math3
     add e5c2a23  Migrate the IdealState usage to read Resource Config for the delayed rebalance. (#878)
     add 1651f9e  Standardize the logging message format in ClusterAccessor and ConfigAccessor (#886)
     add ecae243  Add REST APIs for get, set, update RestConfig (#849)
     add c966784  Remove possible score-tie between two AssignableNodes (#889)
     add f96a3c4  Support enableCompression in workflow and job configs (#883)
     add f2540fd  Add MetadataStoreRoutingData interface and TrieRoutingData class to helix-rest
     add c1a3132  Enable two test runs with multiZk system property (#710)
     add 3d70668  Upgrade AbstractTestClass with multi-ZK support in helix-rest (#717)
     add 952809a  Upgrade ZkTestBase with multi-ZK support in helix-core (#712)
     add cc7846c  Add MockMetadataStoreDirectoryServer (#719)
     add 9984133  Add MetadataStoreRoutingDataReader interface and ZkRoutingDataReader class to helix-rest (#714)
     add 899e04e  Add MetadataStoreDirectory and ZkMetadataStoreDirectory (#720)
     add eae0416  Add TrieRoutingData constructor (#731)
     add ab62683  Add MetadataStoreRoutingDataWriter with DistributedLeaderElection (#727)
     add ff93b28  Add REST read endpoints to Helix Rest to provide resource access to metadata store directory (#744)
     add bc67f8b  Rebase ZooScalability from upstream master
     add 33962f1  Implement getAllMappingUnderPath and getMetadataStoreRealm in ZkMetadataStoreDirectory
     add 3e73a82  Add write REST endpoints to helix rest for metadata store directory (#757)
     add 0ab3a1e  Add RealmAwareZkClient and RealmAwareZkClientFactory interfaces (#745)
     add cfba5f8  Add validation logic to MSD write operations (#759)
     add 889a9b8  Create metadata-store-directory-common module (#771)
     add c3685a0  Fix tests in apache/zooscalability and rebase from apache/master (#787)
     add 53ffe74  Add DedicatedZkClient and update DedicatedZkClientFactory (#765)
     add 3e28ad6  Add REST read endpoints to helix-rest for metadata store directory (#761)
     add ae53ed2  [helix-rest] Add endpoint to get namespace routing data (#799)
     add 7e3688f  Add HttpRoutingDataReader (#775)
     add 3f29468  Add getShardingKeyInPath to MetadataStoreRoutingData (#817)
     add aa1f484  Implement request forwarding for ZkRoutingDataWriter (#788)
     add 388d0c0  Fix InvalidRoutingData error message in tests (#821)
     add 082f2df  Update bump-up.command and ivy imports (#824)
     add d607e99  Add SharedZkClient/InnerSharedZkClient implementation (#796)
     add 9e49246  Improve MetadataStoreDirectoryAccessor endpoints and fix bugs in ZkRoutingDataReader/Writer
     add 105dc0d  Make MSDS endpoint configurable for HttpRoutingDataReader (#836)
     add 06450c3  Add FederatedZkClient (#789)
     add 02f2a90  Make ConfigAccessor and ZkUtil realm-aware (#838)
     add 8e7c5e1  Implement setRoutingData for MetadataStoreDirectoryService (#844)
     add 0709544  Make RealmAwareZkClient implementations use HttpRoutingDataReader for routing data (#819)
     add afd1524  Instrument ConfigAccessor's constructors (#856)
     add cb27e26  Add rerunFailingTestsCount config to surefire-plugin (#865)
     add a8111bd  Make ClusterSetup realm-aware (#861)
     add 0bb4150  Make ZkCacheBaseDataAccessor and ZkHelixPropertyStore realm-aware (#863)
     add 6ca403b  Make ZkHelixClusterVerifier and its child classes realm-aware (#867)
     add 1085e7d  Make ZkBaseDataAccessor realm-aware (#855)
     add 57ce75c  Make ZKHelixAdmin and ZKHelixManager Realm-aware (#846)
     add e3a3385  Reformat ZkBaseDataAccessor (#893)
     add 054e107  Update listClusters() in ZkHelixAdmin (#895)
     add 9a4f308  Make ZkBucketDataAccessor realm-aware (#894)
     add c8998f7  Make ZkUtil realm-aware (#896)
     add 1faaaca  Add integration tests for Helix Java APIs (#892)
     add f92b5a5  Fix setRoutingData boolean handling; fix leader forwarding url construction (#902)
     add 30ea659  Use Java Generics and inheritance to reduce duplicate code in Helix API Builders (#899)
     add e473cec  Make Helix REST realm-aware (#908)
     add a154593  Make multiZkEnabled configurable in HelixRestNamespace (#915)
     add 71171a8  Fix getClusters() in ZKHelixAdmin for multi-zk mode (#916)

No new revisions were added by this update.

Summary of changes:
 bump-up.command                                    |   71 +
 helix-admin-webapp/pom.xml                         |    3 +
 .../org/apache/helix/webapp/HelixAdminWebApp.java  |    2 +-
 .../resources/ClusterRepresentationUtil.java       |    4 +-
 .../helix/webapp/resources/ClusterResource.java    |    4 +-
 .../helix/webapp/resources/ClustersResource.java   |    4 +-
 .../helix/webapp/resources/ConfigResource.java     |    4 +-
 .../helix/webapp/resources/ConstraintResource.java |    4 +-
 .../helix/webapp/resources/ControllerResource.java |    4 +-
 .../resources/ControllerStatusUpdateResource.java  |    2 +-
 .../webapp/resources/CurrentStateResource.java     |    2 +-
 .../webapp/resources/CurrentStatesResource.java    |    2 +-
 .../helix/webapp/resources/ErrorResource.java      |    2 +-
 .../helix/webapp/resources/ErrorsResource.java     |    2 +-
 .../webapp/resources/ExternalViewResource.java     |    2 +-
 .../helix/webapp/resources/IdealStateResource.java |    4 +-
 .../helix/webapp/resources/InstanceResource.java   |    2 +-
 .../helix/webapp/resources/InstancesResource.java  |    4 +-
 .../helix/webapp/resources/JobQueueResource.java   |    4 +-
 .../helix/webapp/resources/JobQueuesResource.java  |    4 +-
 .../apache/helix/webapp/resources/JobResource.java |    4 +-
 .../helix/webapp/resources/JsonParameters.java     |    2 +-
 .../webapp/resources/ResourceGroupResource.java    |    2 +-
 .../webapp/resources/ResourceGroupsResource.java   |    4 +-
 .../helix/webapp/resources/ResourceUtil.java       |    2 +-
 .../webapp/resources/SchedulerTasksResource.java   |    2 +-
 .../helix/webapp/resources/StateModelResource.java |    4 +-
 .../webapp/resources/StateModelsResource.java      |    4 +-
 .../webapp/resources/StatusUpdateResource.java     |    2 +-
 .../webapp/resources/StatusUpdatesResource.java    |    2 +-
 .../helix/webapp/resources/WorkflowsResource.java  |    4 +-
 .../helix/webapp/resources/ZkChildResource.java    |    4 +-
 .../helix/webapp/resources/ZkPathResource.java     |    4 +-
 .../org/apache/helix/webapp/AdminTestBase.java     |    4 +-
 .../org/apache/helix/webapp/AdminTestHelper.java   |    2 +-
 .../helix/webapp/TestClusterManagementWebapp.java  |    2 +-
 .../apache/helix/webapp/TestDisableResource.java   |    2 +-
 .../helix/webapp/TestHelixAdminScenariosRest.java  |    2 +-
 .../helix/webapp/TestResetPartitionState.java      |    2 +-
 .../webapp/resources/TestJobQueuesResource.java    |    2 +-
 helix-common/LICENSE                               |  270 +++
 helix-common/NOTICE                                |   37 +
 .../helix-common-0.9.2-SNAPSHOT.ivy                |   37 +-
 {helix-admin-webapp => helix-common}/pom.xml       |   78 +-
 helix-common/src/assemble/assembly.xml             |   60 +
 .../main/java/org/apache/helix/HelixException.java |    0
 .../java/org/apache/helix/SystemPropertyKeys.java  |   32 +
 .../src/main/java/org/apache/helix/ZNRecord.java   |   30 +-
 .../main/java/org/apache/helix/ZNRecordDelta.java  |   16 +-
 .../zk/serializer/JacksonPayloadSerializer.java    |   15 +-
 .../manager/zk/serializer/PayloadSerializer.java   |   15 +-
 helix-common/src/test/conf/testng.xml              |   27 +
 .../src/test/resources/log4j.properties            |    0
 helix-core/helix-core-0.9.2-SNAPSHOT.ivy           |    2 +-
 helix-core/pom.xml                                 |   18 +-
 .../java/org/apache/helix/BaseDataAccessor.java    |    6 +-
 ...edZkSerializer.java => BucketDataAccessor.java} |   37 +-
 .../main/java/org/apache/helix/ConfigAccessor.java |  160 +-
 .../main/java/org/apache/helix/GroupCommit.java    |   14 +-
 .../src/main/java/org/apache/helix/HelixAdmin.java |   47 +
 .../java/org/apache/helix/HelixDataAccessor.java   |   11 +-
 .../main/java/org/apache/helix/HelixManager.java   |    2 +
 .../main/java/org/apache/helix/HelixProperty.java  |   20 +-
 ...Exception.java => HelixRebalanceException.java} |   29 +-
 .../main/java/org/apache/helix/HelixTimerTask.java |    5 +
 .../main/java/org/apache/helix/InstanceType.java   |    6 +-
 .../org/apache/helix/LiveInstanceInfoProvider.java |    3 +
 .../java/org/apache/helix/ZNRecordAssembler.java   |   29 +-
 .../java/org/apache/helix/ZNRecordBucketizer.java  |   97 +-
 .../java/org/apache/helix/ZNRecordUpdater.java     |   20 +-
 .../apache/helix/api/config/RebalanceConfig.java   |    2 +-
 .../api/config/StateTransitionTimeoutConfig.java   |    2 +-
 .../org/apache/helix/api/listeners/PreFetch.java   |    5 +-
 .../apache/helix/common/DedupEventProcessor.java   |    2 +-
 .../apache/helix/common/caches/TaskDataCache.java  |    2 +-
 .../helix/controller/ExternalViewGenerator.java    |    2 +-
 .../helix/controller/GenericHelixController.java   |  131 +-
 .../helix/controller/HelixControllerMain.java      |    2 +-
 .../helix/controller/HierarchicalDataHolder.java   |    2 +-
 .../controller/changedetector/ChangeDetector.java  |   57 +
 .../changedetector/ResourceChangeDetector.java     |  199 ++
 .../changedetector/ResourceChangeSnapshot.java     |  157 ++
 .../ResourceControllerDataProvider.java            |   36 +-
 .../WorkflowControllerDataProvider.java            |    2 +-
 .../controller/rebalancer/AbstractRebalancer.java  |    2 +-
 .../controller/rebalancer/AutoRebalancer.java      |    2 +-
 .../rebalancer/DelayedAutoRebalancer.java          |  206 +-
 .../controller/rebalancer/StatefulRebalancer.java  |   37 +
 .../dataprovider/ZkBasedCapacityProvider.java      |    2 +-
 .../ZkBasedPartitionWeightProvider.java            |    2 +-
 .../AbstractEvenDistributionRebalanceStrategy.java |    2 +-
 .../rebalancer/strategy/AutoRebalanceStrategy.java |    2 +-
 .../strategy/ConstraintRebalanceStrategy.java      |    2 +-
 .../strategy/CrushRebalanceStrategy.java           |    2 +-
 .../strategy/MultiRoundCrushRebalanceStrategy.java |    2 +-
 .../rebalancer/strategy/RebalanceStrategy.java     |    2 +-
 .../rebalancer/util/DelayedRebalanceUtil.java      |  282 +++
 .../rebalancer/util/ResourceUsageCalculator.java   |  192 ++
 .../rebalancer/util/WagedValidationUtil.java       |   91 +
 .../rebalancer/waged/AssignmentMetadataStore.java  |  212 ++
 .../rebalancer/waged/RebalanceAlgorithm.java       |   43 +
 .../rebalancer/waged/WagedRebalancer.java          |  788 +++++++
 .../constraints/ConstraintBasedAlgorithm.java      |  230 +++
 .../ConstraintBasedAlgorithmFactory.java           |   82 +
 .../constraints/FaultZoneAwareConstraint.java}     |   25 +-
 .../waged/constraints/HardConstraint.java          |   47 +
 .../InstancePartitionsCountConstraint.java         |   41 +
 .../MaxCapacityUsageInstanceConstraint.java        |   42 +
 .../waged/constraints/NodeCapacityConstraint.java  |   50 +
 .../NodeMaxPartitionLimitConstraint.java           |   43 +
 .../constraints/PartitionMovementConstraint.java   |   96 +
 .../constraints/ReplicaActivateConstraint.java}    |   23 +-
 .../ResourcePartitionAntiAffinityConstraint.java   |   43 +
 .../ResourceTopStateAntiAffinityConstraint.java    |   44 +
 .../SamePartitionOnInstanceConstraint.java}        |   24 +-
 .../waged/constraints/SoftConstraint.java          |   90 +
 .../waged/constraints/UsageSoftConstraint.java     |   85 +
 .../constraints/ValidGroupTagConstraint.java}      |   23 +-
 .../rebalancer/waged/model/AssignableNode.java     |  374 ++++
 .../rebalancer/waged/model/AssignableReplica.java  |  161 ++
 .../rebalancer/waged/model/ClusterContext.java     |  172 ++
 .../rebalancer/waged/model/ClusterModel.java       |  132 ++
 .../waged/model/ClusterModelProvider.java          |  507 +++++
 .../rebalancer/waged/model/OptimalAssignment.java  |   93 +
 .../helix/controller/stages/AttributeName.java     |    3 +-
 .../stages/BestPossibleStateCalcStage.java         |  180 +-
 .../helix/controller/stages/ClusterDataCache.java  |    2 +-
 .../helix/controller/stages/ClusterEvent.java      |    6 +-
 .../stages/CurrentStateComputationStage.java       |   75 +
 .../controller/stages/CurrentStateOutput.java      |   23 +
 .../stages/ExternalViewComputeStage.java           |    7 +-
 .../controller/stages/MessageGenerationPhase.java  |  145 +-
 .../controller/stages/PersistAssignmentStage.java  |    4 +-
 .../stages/TaskGarbageCollectionStage.java         |    1 +
 .../controller/strategy/AutoRebalanceStrategy.java |    2 +-
 .../org/apache/helix/examples/ExampleHelper.java   |    8 +-
 .../helix/examples/IdealStateBuilderExample.java   |    5 +-
 .../apache/helix/examples/IdealStateExample.java   |    5 +-
 .../java/org/apache/helix/examples/Quickstart.java |    7 +-
 .../examples/WeightAwareRebalanceUtilExample.java  |   22 +-
 .../ParticipantHealthReportCollector.java          |    2 +-
 .../ParticipantHealthReportCollectorImpl.java      |    2 +-
 .../healthcheck/ParticipantHealthReportTask.java   |    2 -
 .../apache/helix/manager/zk/BasicZkSerializer.java |   26 +-
 .../helix/manager/zk/ByteArraySerializer.java      |    5 +-
 .../apache/helix/manager/zk/CallbackHandler.java   |   17 +-
 .../helix/manager/zk/ChainedPathZkSerializer.java  |    5 +-
 .../helix/manager/zk/ControllerManagerHelper.java  |    2 +-
 .../helix/manager/zk/CurStateCarryOverUpdater.java |    4 +-
 .../zk/DefaultSchedulerMessageHandlerFactory.java  |    2 +-
 .../manager/zk/DistributedLeaderElection.java      |    2 +-
 .../manager/zk/GenericBaseDataAccessorBuilder.java |  145 ++
 .../helix/manager/zk/GenericZkHelixApiBuilder.java |  139 ++
 .../apache/helix/manager/zk/HelixGroupCommit.java  |    6 +-
 .../helix/manager/zk/ParticipantManager.java       |   16 +-
 .../helix/manager/zk/PathBasedZkSerializer.java    |   28 +-
 .../apache/helix/manager/zk/WriteThroughCache.java |    2 +-
 .../helix/manager/zk/ZKExceptionHandler.java       |    2 +-
 .../org/apache/helix/manager/zk/ZKHelixAdmin.java  |  472 ++++-
 .../helix/manager/zk/ZKHelixDataAccessor.java      |   12 +-
 .../apache/helix/manager/zk/ZKHelixManager.java    |  124 +-
 .../java/org/apache/helix/manager/zk/ZKUtil.java   |  113 +-
 ...ializer.java => ZNRecordJacksonSerializer.java} |   22 +-
 .../helix/manager/zk/ZNRecordSerializer.java       |  116 +-
 .../manager/zk/ZNRecordStreamingSerializer.java    |  293 +--
 .../apache/helix/manager/zk/ZkAsyncCallbacks.java  |  176 +-
 .../helix/manager/zk/ZkBaseDataAccessor.java       |  484 +++--
 .../helix/manager/zk/ZkBucketDataAccessor.java     |  398 ++++
 .../helix/manager/zk/ZkCacheBaseDataAccessor.java  |  122 +-
 .../helix/manager/zk/ZkCacheEventThread.java       |    2 +-
 .../apache/helix/manager/zk/ZkCallbackCache.java   |    6 +-
 .../java/org/apache/helix/manager/zk/ZkClient.java |   15 +-
 .../manager/zk/ZkSessionMismatchedException.java   |   18 -
 .../zk/client/DedicatedZkClientFactory.java        |   50 +-
 .../helix/manager/zk/client/HelixZkClient.java     |  441 +---
 .../manager/zk/client/HelixZkClientFactory.java    |   46 -
 .../helix/manager/zk/client/SharedZkClient.java    |  111 +-
 .../manager/zk/client/SharedZkClientFactory.java   |  102 +-
 .../manager/zk/client/ZkConnectionManager.java     |  120 +-
 .../manager/zk/zookeeper/IZkStateListener.java     |   43 +-
 .../helix/manager/zk/zookeeper/ZkClient.java       | 2145 +-------------------
 .../helix/manager/zk/zookeeper/ZkConnection.java   |  174 +-
 .../org/apache/helix/messaging/ZNRecordRow.java    |    2 +-
 .../handling/HelixStateTransitionHandler.java      |    8 +-
 .../java/org/apache/helix/model/AlertHistory.java  |    2 +-
 .../java/org/apache/helix/model/AlertStatus.java   |    2 +-
 .../main/java/org/apache/helix/model/Alerts.java   |    2 +-
 .../java/org/apache/helix/model/ClusterConfig.java |  230 ++-
 .../org/apache/helix/model/ClusterConstraints.java |    2 +-
 .../org/apache/helix/model/ControllerHistory.java  |    2 +-
 .../java/org/apache/helix/model/CurrentState.java  |    2 +-
 .../main/java/org/apache/helix/model/Error.java    |    2 +-
 .../java/org/apache/helix/model/ExternalView.java  |    2 +-
 .../java/org/apache/helix/model/HealthStat.java    |    2 +-
 .../java/org/apache/helix/model/IdealState.java    |    2 +-
 .../org/apache/helix/model/InstanceConfig.java     |   54 +-
 .../org/apache/helix/model/LeaderStandbySMD.java   |    2 +-
 .../java/org/apache/helix/model/LiveInstance.java  |    2 +-
 .../org/apache/helix/model/MaintenanceSignal.java  |    2 +-
 .../org/apache/helix/model/MasterSlaveSMD.java     |    2 +-
 .../main/java/org/apache/helix/model/Message.java  |    2 +-
 .../org/apache/helix/model/OnlineOfflineSMD.java   |    2 +-
 .../org/apache/helix/model/ParticipantHistory.java |    2 +-
 .../java/org/apache/helix/model/PauseSignal.java   |    2 +-
 .../org/apache/helix/model/PersistentStats.java    |    2 +-
 .../java/org/apache/helix/model/RESTConfig.java    |    2 +-
 .../org/apache/helix/model/ResourceAssignment.java |    2 +-
 .../org/apache/helix/model/ResourceConfig.java     |  199 +-
 .../org/apache/helix/model/ScheduledTaskSMD.java   |    2 +-
 .../apache/helix/model/StateModelDefinition.java   |    7 +-
 .../java/org/apache/helix/model/StatusUpdate.java  |    2 +-
 .../org/apache/helix/model/StorageSchemataSMD.java |    2 +-
 .../main/java/org/apache/helix/model/TaskSMD.java  |    2 +-
 .../helix/model/builder/IdealStateBuilder.java     |    2 +-
 .../helix/monitoring/ZKPathDataDumpTask.java       |    2 +-
 .../monitoring/mbeans/ClusterStatusMonitor.java    |   92 +-
 .../helix/monitoring/mbeans/InstanceMonitor.java   |  192 +-
 .../monitoring/mbeans/InstanceMonitorMBean.java    |   51 -
 .../monitoring/mbeans/MonitorDomainNames.java      |    3 +-
 .../helix/monitoring/mbeans/ResourceMonitor.java   |   99 +-
 .../helix/monitoring/mbeans/ZkClientMonitor.java   |  231 +--
 .../monitoring/mbeans/ZkClientPathMonitor.java     |  228 +--
 .../mbeans/dynamicMBeans/DynamicMBeanProvider.java |   78 +-
 .../mbeans/dynamicMBeans/SimpleDynamicMetric.java  |    2 +-
 .../helix/monitoring/metrics/MetricCollector.java  |   99 +
 .../metrics/WagedRebalancerMetricCollector.java    |  125 ++
 .../implementation/BaselineDivergenceGauge.java    |   68 +
 .../metrics/implementation/RebalanceCounter.java}  |   23 +-
 .../implementation/RebalanceFailureCount.java}     |   21 +-
 .../implementation/RebalanceLatencyGauge.java      |   89 +
 .../monitoring/metrics/model/CountMetric.java      |   69 +
 .../monitoring/metrics/model/LatencyMetric.java    |   67 +
 .../metrics/model/Metric.java}                     |   29 +-
 .../model/RatioMetric.java}                        |   46 +-
 .../helix/participant/HelixCustomCodeRunner.java   |   26 +-
 .../statemachine/ScheduledTaskStateModel.java      |    2 +-
 .../apache/helix/store/PropertyJsonSerializer.java |    2 +-
 .../apache/helix/store/ZNRecordJsonSerializer.java |    2 +-
 .../helix/store/zk/AutoFallbackPropertyStore.java  |    2 +-
 .../helix/store/zk/ZkHelixPropertyStore.java       |    3 +-
 .../helix/task/DeprecatedTaskRebalancer.java       |    4 +-
 .../main/java/org/apache/helix/task/JobConfig.java |   22 +-
 .../java/org/apache/helix/task/JobContext.java     |    2 +-
 .../java/org/apache/helix/task/JobDispatcher.java  |    2 +-
 .../java/org/apache/helix/task/TaskConstants.java  |    2 +-
 .../java/org/apache/helix/task/TaskDriver.java     |   12 +-
 .../main/java/org/apache/helix/task/TaskUtil.java  |    5 +-
 .../java/org/apache/helix/task/WorkflowConfig.java |   13 +
 .../org/apache/helix/task/WorkflowContext.java     |    2 +-
 .../org/apache/helix/task/WorkflowDispatcher.java  |    2 +-
 .../java/org/apache/helix/task/beans/JobBean.java  |    1 +
 .../org/apache/helix/task/beans/WorkflowBean.java  |    2 +
 .../helix/tools/ClusterExternalViewVerifier.java   |    2 +-
 .../helix/tools/ClusterLiveNodesVerifier.java      |    2 +-
 .../java/org/apache/helix/tools/ClusterSetup.java  |   73 +-
 .../apache/helix/tools/ClusterStateVerifier.java   |   14 +-
 .../org/apache/helix/tools/ClusterVerifier.java    |    8 +-
 .../BestPossibleExternalViewVerifier.java          |  151 +-
 .../ClusterVerifiers/ClusterLiveNodesVerifier.java |   32 +-
 .../StrictMatchExternalViewVerifier.java           |  107 +-
 .../ClusterVerifiers/ZkHelixClusterVerifier.java   |  140 +-
 .../helix/tools/DefaultIdealStateCalculator.java   |    2 +-
 .../tools/IdealCalculatorByConsistentHashing.java  |    2 +-
 .../helix/tools/IdealStateCalculatorByRush.java    |    2 +-
 .../tools/IdealStateCalculatorByShuffling.java     |    2 +-
 .../java/org/apache/helix/tools/MessagePoster.java |    6 +-
 .../helix/tools/StateModelConfigGenerator.java     |    2 +-
 .../java/org/apache/helix/tools/TestExecutor.java  |   10 +-
 .../java/org/apache/helix/tools/TestTrigger.java   |    2 +-
 .../java/org/apache/helix/tools/ZnodeOpArg.java    |    2 +-
 .../java/org/apache/helix/tools/ZnodeValue.java    |    2 +-
 .../tools/commandtools/CurrentStateCleanUp.java    |    4 +-
 .../tools/commandtools/IntegrationTestUtil.java    |    6 +-
 .../helix/tools/commandtools/LocalZKServer.java    |    7 +-
 .../apache/helix/tools/commandtools/ZKDumper.java  |    7 +-
 .../apache/helix/tools/commandtools/ZkCopy.java    |    4 +-
 .../tools/commandtools/ZkLogCSVFormatter.java      |    2 +-
 .../helix/util/ExponentialBackoffStrategy.java     |   52 +-
 .../org/apache/helix/util/GZipCompressionUtil.java |   56 +-
 .../main/java/org/apache/helix/util/HelixUtil.java |   25 +-
 .../apache/helix/util/InstanceValidationUtil.java  |   29 +-
 .../java/org/apache/helix/util/RebalanceUtil.java  |    7 +-
 .../org/apache/helix/util/StatusUpdateUtil.java    |    2 +-
 .../helix/util/WeightAwareRebalanceUtil.java       |    2 +-
 .../java/org/apache/helix/util/ZKClientPool.java   |    2 +-
 .../java/org/apache/helix/util/ZNRecordUtil.java   |    5 +-
 .../resources/soft-constraint-weight.properties    |   26 +
 .../test/java/org/apache/helix/MockAccessor.java   |   37 +-
 .../java/org/apache/helix/TestConfigAccessor.java  |   88 +-
 .../TestEspressoStorageClusterIdealState.java      |   16 +-
 .../java/org/apache/helix/TestGroupCommit.java     |    4 +-
 .../src/test/java/org/apache/helix/TestHelper.java |   99 +-
 .../apache/helix/TestHierarchicalDataStore.java    |    4 +-
 .../org/apache/helix/TestShuffledIdealState.java   |   49 +-
 .../apache/helix/TestZKRoutingInfoProvider.java    |    2 +
 .../test/java/org/apache/helix/TestZkBasis.java    |    8 +-
 .../test/java/org/apache/helix/ZkTestHelper.java   |   49 +-
 .../java/org/apache/helix/common/ZkTestBase.java   |  105 +-
 .../common/caches/TestCurrentStateSnapshot.java    |    2 +-
 .../changedetector/TestResourceChangeDetector.java |  446 ++++
 .../rebalancer/TestAutoRebalanceStrategy.java      |    2 +-
 ...stAutoRebalanceStrategyImbalanceAssignment.java |    2 +-
 .../rebalancer/TestZeroReplicaAvoidance.java       |    2 +-
 .../util/TestResourceUsageCalculator.java          |  103 +
 .../waged/MockAssignmentMetadataStore.java         |   60 +
 .../waged/TestAssignmentMetadataStore.java         |  186 ++
 .../rebalancer/waged/TestWagedRebalancer.java      |  524 +++++
 .../waged/TestWagedRebalancerMetrics.java          |  190 ++
 .../waged/constraints/MockRebalanceAlgorithm.java  |   84 +
 .../constraints/TestConstraintBasedAlgorithm.java  |   86 +
 .../constraints/TestFaultZoneAwareConstraint.java  |   79 +
 .../TestInstancePartitionsCountConstraint.java     |   63 +
 .../TestMaxCapacityUsageInstanceConstraint.java    |   57 +
 .../constraints/TestNodeCapacityConstraint.java    |   54 +
 .../TestNodeMaxPartitionLimitConstraint.java       |   56 +
 .../TestPartitionActivateConstraint.java           |   64 +
 .../TestPartitionMovementConstraint.java           |  127 ++
 ...estResourcePartitionAntiAffinityConstraint.java |   67 +
 ...TestResourceTopStateAntiAffinityConstraint.java |   82 +
 .../TestSamePartitionOnInstanceConstraint.java     |   59 +
 .../TestSoftConstraintNormalizeFunction.java       |   47 +
 .../constraints/TestValidGroupTagConstraint.java   |   66 +
 .../waged/model/AbstractTestClusterModel.java      |  203 ++
 .../waged/model/ClusterModelTestHelper.java        |   65 +
 .../rebalancer/waged/model/TestAssignableNode.java |  280 +++
 .../waged/model/TestAssignableReplica.java         |  167 ++
 .../rebalancer/waged/model/TestClusterContext.java |   93 +
 .../rebalancer/waged/model/TestClusterModel.java   |  101 +
 .../waged/model/TestClusterModelProvider.java      |  376 ++++
 .../waged/model/TestOptimalAssignment.java         |   91 +
 .../helix/controller/stages/BaseStageTest.java     |    2 +-
 .../controller/stages/DummyClusterManager.java     |    2 +-
 .../TestBestPossibleCalcStageCompatibility.java    |    2 +-
 .../stages/TestCancellationMessageGeneration.java  |   97 +
 .../helix/controller/stages/TestClusterEvent.java  |   44 +-
 .../stages/TestCompatibilityCheckStage.java        |    2 +-
 .../stages/TestCurrentStateComputationStage.java   |    2 +-
 .../stages/TestMessageThrottleStage.java           |    2 +-
 .../stages/TestResourceComputationStage.java       |    2 +-
 .../helix/controller/stages/TestTaskStage.java     |    2 +-
 .../TestAddStateModelFactoryAfterConnect.java      |    2 +-
 .../helix/integration/TestBucketizedResource.java  |    2 +-
 .../integration/TestCarryOverBadCurState.java      |    2 +-
 .../helix/integration/TestCleanupExternalView.java |    2 +-
 .../TestCorrectnessOnConnectivityLoss.java         |    2 +-
 .../org/apache/helix/integration/TestDisable.java  |    2 +-
 .../integration/TestDisableCustomCodeRunner.java   |    2 +-
 .../helix/integration/TestDisableExternalView.java |    2 +-
 .../helix/integration/TestDisableResource.java     |    2 +-
 .../helix/integration/TestDistributedCMMain.java   |    2 +-
 .../TestDistributedClusterController.java          |    2 +-
 .../org/apache/helix/integration/TestDriver.java   |    6 +-
 .../helix/integration/TestEnableCompression.java   |   53 +-
 .../integration/TestEntropyFreeNodeBounce.java     |    4 +-
 .../helix/integration/TestExternalViewUpdates.java |    2 +-
 .../TestNoThrottleDisabledPartitions.java          |    2 +-
 .../apache/helix/integration/TestNullReplica.java  |    2 +-
 .../TestPartitionLevelTransitionConstraint.java    |    2 +-
 .../integration/TestPersistAssignmentStage.java    |    2 +-
 .../integration/TestPreferenceListAsQueue.java     |    4 +-
 .../helix/integration/TestRenamePartition.java     |    2 +-
 .../helix/integration/TestResetPartitionState.java |    2 +-
 .../integration/TestResourceGroupEndtoEnd.java     |    5 +-
 .../TestResourceWithSamePartitionKey.java          |    2 +-
 .../helix/integration/TestStandAloneCMMain.java    |   83 -
 .../integration/TestSyncSessionToController.java   |    2 +-
 .../integration/TestWeightBasedRebalanceUtil.java  |    2 +-
 .../integration/TestZkCallbackHandlerLeak.java     |    6 +-
 .../helix/integration/TestZkConnectionLost.java    |    6 +-
 .../TestControllerDataProviderSelectiveUpdate.java |    2 +-
 .../controller/TestControllerLeadershipChange.java |  165 +-
 .../controller/TestControllerLiveLock.java         |    2 +-
 .../controller/TestWatcherLeakageOnController.java |  102 +
 .../manager/ClusterControllerManager.java          |   12 +-
 .../manager/ClusterDistributedController.java      |    5 +-
 .../manager/MockParticipantManager.java            |    5 +-
 .../manager/TestConsecutiveZkSessionExpiry.java    |    2 +-
 .../integration/manager/TestHelixDataAccessor.java |    2 +-
 .../manager/TestParticipantManager.java            |    2 +-
 .../helix/integration/manager/ZkTestManager.java   |    5 +-
 .../integration/messaging/TestBatchMessage.java    |    4 +-
 .../messaging/TestBatchMessageWrapper.java         |    2 +-
 .../integration/messaging/TestMessageThrottle.java |    4 +-
 .../messaging/TestMessageThrottle2.java            |    2 +-
 .../messaging/TestSchedulerMessage.java            |    2 +-
 .../messaging/TestSchedulerMessage2.java           |    2 +-
 .../messaging/TestSchedulerMsgContraints.java      |    2 +-
 .../messaging/TestSchedulerMsgUsingQueue.java      |    2 +-
 .../multizk/TestMultiZkHelixJavaApis.java          |  484 +++++
 .../TestStateTransitionTimeoutWithResource.java    |    2 +-
 .../TestCrushAutoRebalanceNonRack.java             |    8 +-
 .../rebalancer/CrushRebalancers/TestNodeSwap.java  |    4 +-
 .../TestDelayedAutoRebalance.java                  |   49 +-
 ...stDelayedAutoRebalanceWithDisabledInstance.java |   32 +-
 .../TestDelayedAutoRebalanceWithRackaware.java     |    2 +-
 .../PartitionMigration/TestExpandCluster.java      |    4 +-
 .../TestPartitionMigrationBase.java                |   26 +-
 .../TestWagedRebalancerMigration.java              |  111 +
 .../rebalancer/TestAutoIsWithEmptyMap.java         |    2 +-
 .../integration/rebalancer/TestAutoRebalance.java  |    6 +-
 .../TestAutoRebalancePartitionLimit.java           |    6 +-
 .../TestCustomizedIdealStateRebalancer.java        |    6 +-
 .../rebalancer/TestFullAutoNodeTagging.java        |    8 +-
 .../rebalancer/TestMixedModeAutoRebalance.java     |  181 +-
 .../rebalancer/TestZeroReplicaAvoidance.java       |   62 +-
 .../WagedRebalancer/TestDelayedWagedRebalance.java |   89 +
 ...tDelayedWagedRebalanceWithDisabledInstance.java |   96 +
 .../TestDelayedWagedRebalanceWithRackaware.java    |   96 +
 .../TestMixedModeWagedRebalance.java               |   58 +
 .../TestWagedExpandCluster.java}                   |   47 +-
 .../WagedRebalancer/TestWagedNodeSwap.java         |  294 +++
 .../WagedRebalancer/TestWagedRebalance.java        |  593 ++++++
 .../TestWagedRebalanceFaultZone.java               |  372 ++++
 .../TestWagedRebalanceTopologyAware.java           |  114 ++
 .../helix/integration/task/TaskTestUtil.java       |    2 +-
 .../helix/integration/task/TestTaskStopQueue.java  |    2 +-
 .../task/TestWorkflowContextWithoutConfig.java     |   73 +-
 .../helix/integration/task/WorkflowGenerator.java  |   27 +-
 .../manager/zk/TestAddBuiltInStateModelDef.java    |    2 +-
 .../helix/manager/zk/TestHandleNewSession.java     |   45 +-
 .../apache/helix/manager/zk/TestRawZkClient.java   |  233 ++-
 .../manager/zk/TestWtCacheAsyncOpMultiThread.java  |    6 +-
 .../manager/zk/TestWtCacheAsyncOpSingleThread.java |    6 +-
 .../manager/zk/TestWtCacheSyncOpSingleThread.java  |    4 +-
 .../org/apache/helix/manager/zk/TestZKUtil.java    |    4 +-
 .../org/apache/helix/manager/zk/TestZKWatch.java   |  153 ++
 .../helix/manager/zk/TestZNRecordSerializer.java   |    4 +-
 .../helix/manager/zk/TestZNRecordSizeLimit.java    |  326 ++-
 .../zk/TestZNRecordStreamingSerializer.java        |    2 +-
 .../helix/manager/zk/TestZkBaseDataAccessor.java   |   10 +-
 .../helix/manager/zk/TestZkBucketDataAccessor.java |  189 ++
 .../manager/zk/TestZkCacheAsyncOpSingleThread.java |   10 +-
 .../manager/zk/TestZkCacheSyncOpSingleThread.java  |    8 +-
 .../helix/manager/zk/TestZkClusterManager.java     |    2 +-
 .../apache/helix/manager/zk/TestZkFlapping.java    |    2 +
 .../apache/helix/manager/zk/TestZkHelixAdmin.java  |  110 +-
 .../apache/helix/manager/zk/TestZkReconnect.java   |    4 +-
 .../helix/manager/zk/client/TestHelixZkClient.java |   29 +-
 .../serializer/TestJacksonPayloadSerializer.java   |    2 +-
 .../messaging/TestDefaultMessagingService.java     |    2 +-
 .../apache/helix/mock/MockBaseDataAccessor.java    |    8 +-
 .../java/org/apache/helix/mock/MockHelixAdmin.java |   24 +-
 .../java/org/apache/helix/mock/MockManager.java    |    2 +-
 .../java/org/apache/helix/mock/MockZkClient.java   |    4 +-
 .../apache/helix/mock/MockZkHelixDataAccessor.java |    2 +-
 .../helix/mock/controller/MockController.java      |    6 +-
 .../participant/StoreAccessDiffNodeTransition.java |    7 +-
 .../participant/StoreAccessOneNodeTransition.java  |    7 +-
 .../helix/mock/spectator/MockSpectatorProcess.java |    9 +-
 .../org/apache/helix/model/TestClusterConfig.java  |  259 +++
 .../org/apache/helix/model/TestConstraint.java     |    2 +-
 .../org/apache/helix/model/TestInstanceConfig.java |   73 +-
 .../org/apache/helix/model/TestResourceConfig.java |  271 +++
 .../apache/helix/model/TestStateModelValidity.java |    2 +-
 .../helix/model/TestStateTransitionProperty.java   |    2 +-
 .../helix/monitoring/TestZKPathDataDumpTask.java   |    2 +-
 .../mbeans/TestClusterStatusMonitor.java           |  194 +-
 .../monitoring/mbeans/TestInstanceMonitor.java     |   75 +
 .../monitoring/mbeans/TestResourceMonitor.java     |  373 ++--
 .../mbeans/TestRoutingTableProviderMonitor.java    |   10 +-
 .../monitoring/mbeans/TestZkClientMonitor.java     |    9 +-
 .../helix/participant/MockZKHelixManager.java      |    4 +-
 .../participant/TestDistControllerStateModel.java  |    2 +-
 .../TestDistControllerStateModelFactory.java       |    2 +-
 .../helix/spectator/TestRoutingDataCache.java      |    2 +-
 .../org/apache/helix/store/TestJsonComparator.java |    2 +-
 .../store/zk/TestAutoFallbackPropertyStore.java    |    4 +-
 .../helix/store/zk/TestZkHelixPropertyStore.java   |    8 +-
 .../zk/TestZkManagerWithAutoFallbackStore.java     |    2 +-
 .../helix/task/TestAssignableInstanceManager.java  |    2 +-
 .../org/apache/helix/tools/TestClusterSetup.java   |    2 +-
 .../apache/helix/tools/TestClusterVerifier.java    |   76 +-
 .../org/apache/helix/tools/TestHelixAdminCli.java  |    2 +-
 .../java/org/apache/helix/tools/TestZkCopy.java    |    2 +-
 .../apache/helix/util/TestPropertyKeyGetPath.java  |    2 +-
 .../org/apache/helix/util/TestZKClientPool.java    |    8 +-
 ...eUsageCalculator.MeasureBaselineDivergence.json |   37 +
 ...chExternalViewVerifier.ComputeIdealMapping.json |   14 +-
 helix-rest/pom.xml                                 |    9 +-
 .../rest/common/HelixDataAccessorWrapper.java      |    2 +-
 .../helix/rest/common/HelixRestNamespace.java      |   38 +-
 .../apache/helix/rest/common/HttpConstants.java    |   15 +-
 .../org/apache/helix/rest/common/ServletType.java  |    7 +-
 .../rest/metadatastore/MetadataStoreDirectory.java |  137 ++
 .../metadatastore/ZkMetadataStoreDirectory.java    |  369 ++++
 .../accessor/MetadataStoreRoutingDataReader.java   |   50 +
 .../accessor/MetadataStoreRoutingDataWriter.java   |   74 +
 .../accessor/ZkRoutingDataReader.java              |  160 ++
 .../accessor/ZkRoutingDataWriter.java              |  428 ++++
 .../concurrency/ZkDistributedLeaderElection.java   |  141 ++
 .../datamodel/MetadataStoreShardingKey.java        |   61 +
 .../MetadataStoreShardingKeysByRealm.java          |   56 +
 .../apache/helix/rest/server/HelixRestMain.java    |    8 +-
 .../apache/helix/rest/server/HelixRestServer.java  |    5 +-
 .../apache/helix/rest/server/ServerContext.java    |  309 ++-
 .../rest/server/json/instance/InstanceInfo.java    |    2 +-
 .../rest/server/resources/AbstractResource.java    |   10 +-
 .../resources/helix/AbstractHelixResource.java     |   14 +-
 .../server/resources/helix/ClusterAccessor.java    |  355 ++--
 .../server/resources/helix/InstancesAccessor.java  |   88 +-
 .../rest/server/resources/helix/JobAccessor.java   |    4 +-
 .../resources/helix/PerInstanceAccessor.java       |   58 +-
 .../resources/helix/PropertyStoreAccessor.java     |    6 +-
 .../server/resources/helix/ResourceAccessor.java   |  160 +-
 .../rest/server/resources/helix/TaskAccessor.java  |    2 +-
 .../server/resources/helix/WorkflowAccessor.java   |    4 +-
 .../MetadataStoreDirectoryAccessor.java            |  392 ++++
 .../resources/zookeeper/ZooKeeperAccessor.java     |   25 +-
 .../rest/server/service/InstanceServiceImpl.java   |    8 +
 .../rest/common/TestHelixDataAccessorWrapper.java  |    2 +-
 .../TestZkMetadataStoreDirectory.java              |  344 ++++
 .../accessor/TestZkRoutingDataReader.java          |  136 ++
 .../accessor/TestZkRoutingDataWriter.java          |  223 ++
 .../integration/TestRoutingDataUpdate.java         |  176 ++
 .../helix/rest/server/AbstractTestClass.java       |  192 +-
 .../MetadataStoreDirectoryAccessorTestBase.java    |  149 ++
 .../helix/rest/server/TestClusterAccessor.java     |   81 +-
 .../helix/rest/server/TestInstancesAccessor.java   |   77 +
 .../rest/server/TestMSDAccessorLeaderElection.java |  261 +++
 .../server/TestMetadataStoreDirectoryAccessor.java |  516 +++++
 .../helix/rest/server/TestPerInstanceAccessor.java |   68 +-
 .../rest/server/TestPropertyStoreAccessor.java     |    6 +-
 .../helix/rest/server/TestResourceAccessor.java    |  119 +-
 .../helix/rest/server/TestZooKeeperAccessor.java   |    4 +-
 .../mock/MockMetadataStoreDirectoryAccessor.java   |  124 ++
 .../rest/server/util/JerseyUriRequestBuilder.java  |    3 +-
 .../LICENSE                                        |    0
 .../NOTICE                                         |    0
 ...adata-store-directory-common-0.9.2-SNAPSHOT.ivy |   42 +-
 .../pom.xml                                        |   95 +-
 .../src/assemble/assembly.xml                      |   60 +
 .../src/main/config/log4j.properties               |    0
 .../msdcommon/callback/RoutingDataListener.java    |   11 +-
 .../constant/MetadataStoreRoutingConstants.java    |   95 +
 .../datamodel/MetadataStoreRoutingData.java        |   78 +
 .../helix/msdcommon/datamodel/TrieRoutingData.java |  308 +++
 .../exception/InvalidRoutingDataException.java     |   18 +-
 .../mock/MockMetadataStoreDirectoryServer.java     |  157 ++
 .../helix/msdcommon/util/ZkValidationUtil.java     |   33 +-
 .../src/test/conf/testng.xml                       |   27 +
 .../helix/msdcommon/constant/TestConstants.java    |   23 +-
 .../msdcommon/datamodel/TestTrieRoutingData.java   |  338 +++
 .../mock/TestMockMetadataStoreDirectoryServer.java |  115 ++
 .../src/test/resources/log4j.properties            |    0
 metrics-common/LICENSE                             |  270 +++
 metrics-common/NOTICE                              |   37 +
 .../metrics-common-0.9.2-SNAPSHOT.ivy              |   35 +-
 {helix-admin-webapp => metrics-common}/pom.xml     |   74 +-
 metrics-common/src/assemble/assembly.xml           |   60 +
 .../helix/monitoring/SensorNameProvider.java       |    0
 .../helix/monitoring/mbeans/MBeanRegistrar.java    |    1 +
 .../monitoring/mbeans/MonitorDomainNames.java      |    0
 .../mbeans/dynamicMBeans/DynamicMBeanProvider.java |   41 +-
 .../mbeans/dynamicMBeans/DynamicMetric.java        |    5 +-
 .../dynamicMBeans/HistogramDynamicMetric.java      |    1 +
 .../mbeans/dynamicMBeans/SimpleDynamicMetric.java  |    0
 .../mbeans/exception/MetricException.java          |   18 +-
 metrics-common/src/test/conf/testng.xml            |   27 +
 .../src/test/resources/log4j.properties            |    0
 pom.xml                                            |   10 +
 .../apache/helix/lockmanager/LockManagerDemo.java  |    7 +-
 .../apache/helix/recipes/rabbitmq/Consumer.java    |    2 +-
 .../recipes/rabbitmq/SetupConsumerCluster.java     |    2 +-
 recipes/rsync-replicated-file-system/pom.xml       |    5 -
 .../java/org/apache/helix/filestore/FileStore.java |    2 +-
 .../helix/filestore/FileStoreStateModel.java       |    4 +-
 .../apache/helix/filestore/IntegrationTest.java    |    8 +-
 .../org/apache/helix/filestore/Replicator.java     |    2 +-
 .../org/apache/helix/filestore/SetupCluster.java   |    2 +-
 .../helix/servicediscovery/ServiceDiscovery.java   |    2 +-
 .../apache/helix/taskexecution/TaskCluster.java    |    2 +-
 .../helix/taskexecution/TaskExecutionDemo.java     |    7 +-
 .../org/apache/helix/taskexecution/Worker.java     |    2 +-
 zookeeper-api/LICENSE                              |  270 +++
 zookeeper-api/NOTICE                               |   37 +
 {helix-admin-webapp => zookeeper-api}/pom.xml      |   91 +-
 zookeeper-api/src/assemble/assembly.xml            |   60 +
 .../src/main/config/log4j.properties               |    0
 .../helix/zookeeper/api/client/HelixZkClient.java  |  157 ++
 .../zookeeper/api/client/RealmAwareZkClient.java   |  606 ++++++
 .../helix/zookeeper/api/client/ZkClientType.java   |   32 +-
 .../api/factory/RealmAwareZkClientFactory.java     |   56 +
 .../zookeeper/constant/ZkSystemPropertyKeys.java   |   53 +
 .../helix/zookeeper/datamodel}/ZNRecord.java       |   56 +-
 .../zookeeper/datamodel}/ZNRecordAssembler.java    |    3 +-
 .../zookeeper/datamodel}/ZNRecordBucketizer.java   |    3 +-
 .../helix/zookeeper/datamodel}/ZNRecordDelta.java  |    2 +-
 .../zookeeper/datamodel}/ZNRecordUpdater.java      |    5 +-
 .../serializer/JacksonPayloadSerializer.java       |    8 +-
 .../datamodel}/serializer/PayloadSerializer.java   |    2 +-
 .../serializer/ZNRecordJacksonSerializer.java      |   68 +
 .../datamodel/serializer}/ZNRecordSerializer.java  |   52 +-
 .../serializer}/ZNRecordStreamingSerializer.java   |   50 +-
 .../zookeeper/exception/ZkClientException.java     |   14 +-
 .../zookeeper/impl/client/DedicatedZkClient.java   |  504 +++++
 .../zookeeper/impl/client/FederatedZkClient.java   |  574 ++++++
 .../zookeeper/impl/client/SharedZkClient.java      |  534 +++++
 .../helix/zookeeper/impl/client}/ZkClient.java     |   59 +-
 .../impl/factory/DedicatedZkClientFactory.java     |   69 +
 .../impl/factory/HelixZkClientFactory.java         |   71 +
 .../impl/factory/SharedZkClientFactory.java        |  209 ++
 .../impl/factory}/ZkConnectionManager.java         |   55 +-
 .../helix/zookeeper}/util/GZipCompressionUtil.java |    5 +-
 .../zookeeper/util/HttpRoutingDataReader.java      |  197 ++
 .../apache/helix/zookeeper/util/ZNRecordUtil.java  |   65 +
 .../helix/zookeeper/zkclient/DataUpdater.java      |   34 +
 .../helix/zookeeper/zkclient/ExceptionUtil.java    |   52 +
 .../zookeeper/zkclient/IDefaultNameSpace.java      |   27 +
 .../helix/zookeeper/zkclient/IZkChildListener.java |   41 +
 .../helix/zookeeper/zkclient/IZkConnection.java    |   60 +
 .../helix/zookeeper/zkclient/IZkDataListener.java  |   30 +
 .../zookeeper/zkclient}/IZkStateListener.java      |    2 +-
 .../helix/zookeeper/zkclient/NetworkUtil.java      |  122 ++
 .../apache/helix/zookeeper/zkclient}/ZkClient.java |  244 ++-
 .../helix/zookeeper/zkclient}/ZkConnection.java    |    6 +-
 .../helix/zookeeper/zkclient}/ZkEventThread.java   |    5 +-
 .../apache/helix/zookeeper/zkclient/ZkLock.java    |   56 +
 .../apache/helix/zookeeper/zkclient/ZkServer.java  |  175 ++
 .../zookeeper/zkclient/annotation}/PreFetch.java   |    2 +-
 .../zkclient/callback}/ZkAsyncCallbacks.java       |   11 +-
 .../zkclient/deprecated/IZkStateListener.java      |   53 +
 .../zkclient/exception/ZkBadVersionException.java  |   39 +
 .../zookeeper/zkclient/exception/ZkException.java  |   71 +
 .../zkclient/exception/ZkInterruptedException.java |   26 +
 .../zkclient/exception/ZkMarshallingError.java     |   37 +
 .../zkclient/exception/ZkNoNodeException.java      |   39 +
 .../zkclient/exception/ZkNodeExistsException.java  |   39 +
 .../exception/ZkSessionMismatchedException.java    |   22 +-
 .../zkclient/exception/ZkTimeoutException.java     |   37 +
 .../zkclient/metric}/ZkClientMonitor.java          |   15 +-
 .../zkclient/metric}/ZkClientPathMonitor.java      |    4 +-
 .../zkclient/serialize}/BasicZkSerializer.java     |    4 +-
 .../serialize/BytesPushThroughSerializer.java      |   36 +
 .../zkclient/serialize}/PathBasedZkSerializer.java |    5 +-
 .../zkclient/serialize/SerializableSerializer.java |   55 +
 .../serialize/TcclAwareObjectIputStream.java       |   82 +
 .../zookeeper/zkclient/serialize/ZkSerializer.java |   33 +
 .../zkclient}/util/ExponentialBackoffStrategy.java |   22 +-
 zookeeper-api/src/test/conf/testng.xml             |   27 +
 .../helix/zookeeper/constant/TestConstants.java    |   45 +
 .../TestZNRecordSerializeWriteSizeLimit.java       |  200 ++
 .../apache/helix/zookeeper/impl/ZkTestBase.java    |  148 ++
 .../client/RealmAwareZkClientFactoryTestBase.java  |  180 ++
 .../impl/client/RealmAwareZkClientTestBase.java    |   66 +
 .../impl/client/TestDedicatedZkClient.java         |   27 +-
 .../impl/client/TestFederatedZkClient.java         |  283 +++
 .../zookeeper/impl/client/TestSharedZkClient.java  |   69 +
 .../zookeeper/util/TestHttpRoutingDataReader.java  |  120 ++
 .../src/test/resources/log4j.properties            |    0
 .../zookeeper-api-0.9.2-SNAPSHOT.ivy               |   39 +-
 650 files changed, 32526 insertions(+), 7975 deletions(-)
 create mode 100644 helix-common/LICENSE
 create mode 100644 helix-common/NOTICE
 copy helix-core/helix-core-0.9.2-SNAPSHOT.ivy => helix-common/helix-common-0.9.2-SNAPSHOT.ivy (56%)
 copy {helix-admin-webapp => helix-common}/pom.xml (58%)
 create mode 100644 helix-common/src/assemble/assembly.xml
 copy {helix-core => helix-common}/src/main/java/org/apache/helix/HelixException.java (100%)
 rename {helix-core => helix-common}/src/main/java/org/apache/helix/SystemPropertyKeys.java (56%)
 copy helix-core/src/main/java/org/apache/helix/HelixException.java => helix-common/src/main/java/org/apache/helix/ZNRecord.java (52%)
 copy helix-core/src/main/java/org/apache/helix/HelixTimerTask.java => helix-common/src/main/java/org/apache/helix/ZNRecordDelta.java (78%)
 copy helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MonitorDomainNames.java => helix-common/src/main/java/org/apache/helix/manager/zk/serializer/JacksonPayloadSerializer.java (71%)
 copy helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MonitorDomainNames.java => helix-common/src/main/java/org/apache/helix/manager/zk/serializer/PayloadSerializer.java (71%)
 create mode 100644 helix-common/src/test/conf/testng.xml
 copy {helix-rest => helix-common}/src/test/resources/log4j.properties (100%)
 copy helix-core/src/main/java/org/apache/helix/{manager/zk/PathBasedZkSerializer.java => BucketDataAccessor.java} (50%)
 copy helix-core/src/main/java/org/apache/helix/{HelixException.java => HelixRebalanceException.java} (50%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/changedetector/ChangeDetector.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/changedetector/ResourceChangeDetector.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/changedetector/ResourceChangeSnapshot.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/StatefulRebalancer.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/util/DelayedRebalanceUtil.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/util/WagedValidationUtil.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/AssignmentMetadataStore.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/RebalanceAlgorithm.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/WagedRebalancer.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/ConstraintBasedAlgorithm.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/ConstraintBasedAlgorithmFactory.java
 copy helix-core/src/main/java/org/apache/helix/{manager/zk/ByteArraySerializer.java => controller/rebalancer/waged/constraints/FaultZoneAwareConstraint.java} (51%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/HardConstraint.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/InstancePartitionsCountConstraint.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/MaxCapacityUsageInstanceConstraint.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/NodeCapacityConstraint.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/NodeMaxPartitionLimitConstraint.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/PartitionMovementConstraint.java
 copy helix-core/src/main/java/org/apache/helix/{manager/zk/ByteArraySerializer.java => controller/rebalancer/waged/constraints/ReplicaActivateConstraint.java} (52%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/ResourcePartitionAntiAffinityConstraint.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/ResourceTopStateAntiAffinityConstraint.java
 copy helix-core/src/main/java/org/apache/helix/{store/ZNRecordJsonSerializer.java => controller/rebalancer/waged/constraints/SamePartitionOnInstanceConstraint.java} (54%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/SoftConstraint.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/UsageSoftConstraint.java
 copy helix-core/src/main/java/org/apache/helix/{manager/zk/ByteArraySerializer.java => controller/rebalancer/waged/constraints/ValidGroupTagConstraint.java} (54%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/AssignableNode.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/AssignableReplica.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/ClusterContext.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/ClusterModel.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/ClusterModelProvider.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/OptimalAssignment.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/GenericBaseDataAccessorBuilder.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/GenericZkHelixApiBuilder.java
 copy helix-core/src/main/java/org/apache/helix/manager/zk/{ByteArraySerializer.java => ZNRecordJacksonSerializer.java} (68%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/ZkBucketDataAccessor.java
 delete mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/ZkSessionMismatchedException.java
 delete mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/client/HelixZkClientFactory.java
 delete mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/mbeans/InstanceMonitorMBean.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/MetricCollector.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/WagedRebalancerMetricCollector.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/implementation/BaselineDivergenceGauge.java
 copy helix-core/src/main/java/org/apache/helix/{HelixTimerTask.java => monitoring/metrics/implementation/RebalanceCounter.java} (61%)
 copy helix-core/src/main/java/org/apache/helix/{HelixTimerTask.java => monitoring/metrics/implementation/RebalanceFailureCount.java} (69%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/implementation/RebalanceLatencyGauge.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/model/CountMetric.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/model/LatencyMetric.java
 copy helix-core/src/main/java/org/apache/helix/{HelixTimerTask.java => monitoring/metrics/model/Metric.java} (57%)
 copy helix-core/src/main/java/org/apache/helix/monitoring/{mbeans/dynamicMBeans/SimpleDynamicMetric.java => metrics/model/RatioMetric.java} (52%)
 create mode 100644 helix-core/src/main/resources/soft-constraint-weight.properties
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/changedetector/TestResourceChangeDetector.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/util/TestResourceUsageCalculator.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/MockAssignmentMetadataStore.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/TestAssignmentMetadataStore.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/TestWagedRebalancer.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/TestWagedRebalancerMetrics.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/MockRebalanceAlgorithm.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestConstraintBasedAlgorithm.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestFaultZoneAwareConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestInstancePartitionsCountConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestMaxCapacityUsageInstanceConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestNodeCapacityConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestNodeMaxPartitionLimitConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestPartitionActivateConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestPartitionMovementConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestResourcePartitionAntiAffinityConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestResourceTopStateAntiAffinityConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestSamePartitionOnInstanceConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestSoftConstraintNormalizeFunction.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestValidGroupTagConstraint.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/AbstractTestClusterModel.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/ClusterModelTestHelper.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestAssignableNode.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestAssignableReplica.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestClusterContext.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestClusterModel.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestClusterModelProvider.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestOptimalAssignment.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/controller/stages/TestCancellationMessageGeneration.java
 delete mode 100644 helix-core/src/test/java/org/apache/helix/integration/TestStandAloneCMMain.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/controller/TestWatcherLeakageOnController.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/multizk/TestMultiZkHelixJavaApis.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/PartitionMigration/TestWagedRebalancerMigration.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestDelayedWagedRebalance.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestDelayedWagedRebalanceWithDisabledInstance.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestDelayedWagedRebalanceWithRackaware.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestMixedModeWagedRebalance.java
 copy helix-core/src/test/java/org/apache/helix/integration/rebalancer/{PartitionMigration/TestExpandCluster.java => WagedRebalancer/TestWagedExpandCluster.java} (74%)
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestWagedNodeSwap.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestWagedRebalance.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestWagedRebalanceFaultZone.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestWagedRebalanceTopologyAware.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/manager/zk/TestZKWatch.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/manager/zk/TestZkBucketDataAccessor.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/model/TestClusterConfig.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/model/TestResourceConfig.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/monitoring/mbeans/TestInstanceMonitor.java
 create mode 100644 helix-core/src/test/resources/TestResourceUsageCalculator.MeasureBaselineDivergence.json
 copy helix-core/src/main/java/org/apache/helix/monitoring/SensorNameProvider.java => helix-rest/src/main/java/org/apache/helix/rest/common/HttpConstants.java (75%)
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/MetadataStoreDirectory.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/ZkMetadataStoreDirectory.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/accessor/MetadataStoreRoutingDataReader.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/accessor/MetadataStoreRoutingDataWriter.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/accessor/ZkRoutingDataReader.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/accessor/ZkRoutingDataWriter.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/concurrency/ZkDistributedLeaderElection.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/datamodel/MetadataStoreShardingKey.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/datamodel/MetadataStoreShardingKeysByRealm.java
 create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/server/resources/metadatastore/MetadataStoreDirectoryAccessor.java
 create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/metadatastore/TestZkMetadataStoreDirectory.java
 create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/metadatastore/accessor/TestZkRoutingDataReader.java
 create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/metadatastore/accessor/TestZkRoutingDataWriter.java
 create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/metadatastore/integration/TestRoutingDataUpdate.java
 create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/server/MetadataStoreDirectoryAccessorTestBase.java
 create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/server/TestMSDAccessorLeaderElection.java
 create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/server/TestMetadataStoreDirectoryAccessor.java
 create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/server/mock/MockMetadataStoreDirectoryAccessor.java
 copy {helix-rest => metadata-store-directory-common}/LICENSE (100%)
 copy {helix-rest => metadata-store-directory-common}/NOTICE (100%)
 copy helix-core/helix-core-0.9.2-SNAPSHOT.ivy => metadata-store-directory-common/metadata-store-directory-common-0.9.2-SNAPSHOT.ivy (55%)
 copy {helix-admin-webapp => metadata-store-directory-common}/pom.xml (55%)
 create mode 100644 metadata-store-directory-common/src/assemble/assembly.xml
 copy {helix-rest => metadata-store-directory-common}/src/main/config/log4j.properties (100%)
 copy helix-core/src/main/java/org/apache/helix/monitoring/SensorNameProvider.java => metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/callback/RoutingDataListener.java (75%)
 create mode 100644 metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/constant/MetadataStoreRoutingConstants.java
 create mode 100644 metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/datamodel/MetadataStoreRoutingData.java
 create mode 100644 metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/datamodel/TrieRoutingData.java
 copy helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MonitorDomainNames.java => metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/exception/InvalidRoutingDataException.java (67%)
 create mode 100644 metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/mock/MockMetadataStoreDirectoryServer.java
 copy helix-core/src/main/java/org/apache/helix/HelixTimerTask.java => metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/util/ZkValidationUtil.java (60%)
 create mode 100644 metadata-store-directory-common/src/test/conf/testng.xml
 copy helix-core/src/main/java/org/apache/helix/healthcheck/ParticipantHealthReportCollector.java => metadata-store-directory-common/src/test/java/org/apache/helix/msdcommon/constant/TestConstants.java (59%)
 create mode 100644 metadata-store-directory-common/src/test/java/org/apache/helix/msdcommon/datamodel/TestTrieRoutingData.java
 create mode 100644 metadata-store-directory-common/src/test/java/org/apache/helix/msdcommon/mock/TestMockMetadataStoreDirectoryServer.java
 copy {helix-rest => metadata-store-directory-common}/src/test/resources/log4j.properties (100%)
 create mode 100644 metrics-common/LICENSE
 create mode 100644 metrics-common/NOTICE
 copy helix-core/helix-core-0.9.2-SNAPSHOT.ivy => metrics-common/metrics-common-0.9.2-SNAPSHOT.ivy (53%)
 copy {helix-admin-webapp => metrics-common}/pom.xml (55%)
 create mode 100644 metrics-common/src/assemble/assembly.xml
 rename {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/SensorNameProvider.java (100%)
 rename {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/MBeanRegistrar.java (99%)
 copy {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/MonitorDomainNames.java (100%)
 copy {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMBeanProvider.java (87%)
 rename {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMetric.java (95%)
 rename {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/HistogramDynamicMetric.java (99%)
 copy {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/SimpleDynamicMetric.java (100%)
 copy helix-core/src/main/java/org/apache/helix/api/listeners/PreFetch.java => metrics-common/src/main/java/org/apache/helix/monitoring/mbeans/exception/MetricException.java (70%)
 create mode 100644 metrics-common/src/test/conf/testng.xml
 copy {helix-rest => metrics-common}/src/test/resources/log4j.properties (100%)
 create mode 100644 zookeeper-api/LICENSE
 create mode 100644 zookeeper-api/NOTICE
 copy {helix-admin-webapp => zookeeper-api}/pom.xml (64%)
 create mode 100644 zookeeper-api/src/assemble/assembly.xml
 copy {helix-rest => zookeeper-api}/src/main/config/log4j.properties (100%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/client/HelixZkClient.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/client/RealmAwareZkClient.java
 copy helix-core/src/main/java/org/apache/helix/manager/zk/PathBasedZkSerializer.java => zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/client/ZkClientType.java (54%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/factory/RealmAwareZkClientFactory.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/constant/ZkSystemPropertyKeys.java
 rename {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecord.java (91%)
 copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecordAssembler.java (96%)
 copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecordBucketizer.java (98%)
 rename {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecordDelta.java (97%)
 copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecordUpdater.java (92%)
 rename {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/serializer/JacksonPayloadSerializer.java (94%)
 rename {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/serializer/PayloadSerializer.java (96%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel/serializer/ZNRecordJacksonSerializer.java
 copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel/serializer}/ZNRecordSerializer.java (69%)
 copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel/serializer}/ZNRecordStreamingSerializer.java (86%)
 copy helix-core/src/main/java/org/apache/helix/HelixException.java => zookeeper-api/src/main/java/org/apache/helix/zookeeper/exception/ZkClientException.java (69%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/client/DedicatedZkClient.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/client/FederatedZkClient.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/client/SharedZkClient.java
 copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/client}/ZkClient.java (83%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/factory/DedicatedZkClientFactory.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/factory/HelixZkClientFactory.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/factory/SharedZkClientFactory.java
 copy {helix-core/src/main/java/org/apache/helix/manager/zk/client => zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/factory}/ZkConnectionManager.java (62%)
 copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper}/util/GZipCompressionUtil.java (97%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/util/HttpRoutingDataReader.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/util/ZNRecordUtil.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/DataUpdater.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ExceptionUtil.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/IDefaultNameSpace.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/IZkChildListener.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/IZkConnection.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/IZkDataListener.java
 copy {helix-core/src/main/java/org/apache/helix/manager/zk/zookeeper => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/IZkStateListener.java (98%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/NetworkUtil.java
 copy {helix-core/src/main/java/org/apache/helix/manager/zk/zookeeper => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/ZkClient.java (90%)
 copy {helix-core/src/main/java/org/apache/helix/manager/zk/zookeeper => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/ZkConnection.java (97%)
 rename {helix-core/src/main/java/org/apache/helix/manager/zk/zookeeper => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/ZkEventThread.java (97%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkLock.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
 copy {helix-core/src/main/java/org/apache/helix/api/listeners => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/annotation}/PreFetch.java (94%)
 copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/callback}/ZkAsyncCallbacks.java (96%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/deprecated/IZkStateListener.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkBadVersionException.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkException.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkInterruptedException.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkMarshallingError.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkNoNodeException.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkNodeExistsException.java
 copy helix-core/src/main/java/org/apache/helix/task/beans/WorkflowBean.java => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkSessionMismatchedException.java (68%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkTimeoutException.java
 copy {helix-core/src/main/java/org/apache/helix/monitoring/mbeans => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric}/ZkClientMonitor.java (94%)
 copy {helix-core/src/main/java/org/apache/helix/monitoring/mbeans => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric}/ZkClientPathMonitor.java (98%)
 copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize}/BasicZkSerializer.java (93%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize/BytesPushThroughSerializer.java
 copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize}/PathBasedZkSerializer.java (91%)
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize/SerializableSerializer.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize/TcclAwareObjectIputStream.java
 create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize/ZkSerializer.java
 copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/util/ExponentialBackoffStrategy.java (54%)
 create mode 100644 zookeeper-api/src/test/conf/testng.xml
 create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/constant/TestConstants.java
 create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/datamodel/serializer/TestZNRecordSerializeWriteSizeLimit.java
 create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/ZkTestBase.java
 create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/RealmAwareZkClientFactoryTestBase.java
 create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/RealmAwareZkClientTestBase.java
 rename helix-core/src/main/java/org/apache/helix/HelixException.java => zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestDedicatedZkClient.java (54%)
 create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestFederatedZkClient.java
 create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestSharedZkClient.java
 create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/util/TestHttpRoutingDataReader.java
 copy {helix-rest => zookeeper-api}/src/test/resources/log4j.properties (100%)
 copy helix-core/helix-core-0.9.2-SNAPSHOT.ivy => zookeeper-api/zookeeper-api-0.9.2-SNAPSHOT.ivy (53%)