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

[helix] branch customizeView updated (87d077b -> 46ce1c1)

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

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


 discard 87d077b  Move routing table provider initialization (#946)
 discard c28bf9f  Add registration logic for CustomizedView listeners (#944)
    omit 4c530a6  Add cache update/delete in customized view aggregation stage (#934)
    omit 3a3c3a9  fix customized state provider (#928)
    omit 77110f6  Add integration test to customized view aggregation (#912)
    omit e367004  Replace customized view cache with property cache (#869)
    omit b7faf39  minor fix for customized view aggregation (#917)
    omit 9212571  Add new stages in Helix generic controller for customized view aggregation. (#851)
    omit 3f8ebc3  Complete the Routing Table Provider for CustomizedView (#834)
    omit 966a4b8  Add two stages for customized state view aggregation. (#888)
    omit 897e977  update cache functions for customized view aggregation (#887)
    omit db5bbd3  Use updater to update customized state for concurrency control (#859)
    omit 11e6ccf  rename custmized state aggregation config to customized state config (#885)
    omit 384eb69  Add intermediate storage for customized state (#827)
    omit d23b54a  Improve CustomizedStateProvider tests (#840)
    omit 87aec1a  add listener and config for customized view aggregation (#815)
    omit 268987d  Add basic functionalities for RoutingTableProvider for CustomizedView (#814)
    omit 106b069  Implement Helix API for updating customized state (#729)
    omit bdd66cc  Add REST API to add, remove and update CustomizedStateAggregationConfig (#797)
    omit dc25323  Add java API to add or remove CustomizedStateAggregationConfig (#792)
    omit f80d76e  add CustomizedStateAggregation config (#776)
    omit 5c25149  Add the CustomizedView Helix property (#723)
     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 d109c64  Fix the concurrent modification error happens during the HelixManager initHandlers() call (#904)
     add 5e529ad  Fix TestZNRecordSerializeWriteSizeLimit (#911)
     add 4355430  Refresh live instance while fetching the current state information in the RoutingTableProvider. (#920)
     add 184a50a  Fix the scheduling decision for multiple currentStates (#923)
     add ba0f4e5  Add CloudConfig code
     add 64ca238  add Helix cloud interface and implementation skeleton methods
     add 9f6cc4b  Add java API to create cluster with CloudConfig
     add 3bbeb31  Add REST API for Cluster Creation with CloudConfig (#675)
     add 5dac1cc  Add Helix properties factory and class (#653)
     add 079483b  Implement Azure cloud instance information processor (#698)
     add c2f0dc3  Modify participant manager to add cluster auto registration logic (#695)
     add a32f387  add one more test for auto registration (#806)
     add 912e794  Change the cluster creation logic (#872)
     add 7f640e4  Add construction of domain in Helix participant logic (#876)
     add ab3c4da  Change the REST call for delete CloudConfig  (#882)
     add ec2f3d9  Add REST and JAVA API to modify existing cloudconfig (#898)
     add c2f3c08  Fix ClusterAccessor::createCluster wrt CloudConfig (#937)
     add adebe17  Add MetadataStoreRoutingData interface and TrieRoutingData class to helix-rest
     add 1323b25  Enable two test runs with multiZk system property (#710)
     add 2eaf882  Upgrade AbstractTestClass with multi-ZK support in helix-rest (#717)
     add c967c7c  Upgrade ZkTestBase with multi-ZK support in helix-core (#712)
     add d5a042d  Add MockMetadataStoreDirectoryServer (#719)
     add a4edbd2  Add MetadataStoreRoutingDataReader interface and ZkRoutingDataReader class to helix-rest (#714)
     add 08949f8  Add MetadataStoreDirectory and ZkMetadataStoreDirectory (#720)
     add 15cc55e  Add TrieRoutingData constructor (#731)
     add 661729b  Add MetadataStoreRoutingDataWriter with DistributedLeaderElection (#727)
     add c6504f3  Add REST read endpoints to Helix Rest to provide resource access to metadata store directory (#744)
     add 527c215  Rebase ZooScalability from upstream master
     add ab4f41e  Implement getAllMappingUnderPath and getMetadataStoreRealm in ZkMetadataStoreDirectory
     add e960917  Add write REST endpoints to helix rest for metadata store directory (#757)
     add 7512cfd  Add RealmAwareZkClient and RealmAwareZkClientFactory interfaces (#745)
     add c990679  Add validation logic to MSD write operations (#759)
     add 01ae06a  Create metadata-store-directory-common module (#771)
     add 6e4f27d  Fix tests in apache/zooscalability and rebase from apache/master (#787)
     add 642ee20  Add DedicatedZkClient and update DedicatedZkClientFactory (#765)
     add df6453e  Add REST read endpoints to helix-rest for metadata store directory (#761)
     add 65afec0  [helix-rest] Add endpoint to get namespace routing data (#799)
     add 6f9c5c9  Add HttpRoutingDataReader (#775)
     add f180cc9  Add getShardingKeyInPath to MetadataStoreRoutingData (#817)
     add 3af4c1f  Implement request forwarding for ZkRoutingDataWriter (#788)
     add 6b2a6ff  Fix InvalidRoutingData error message in tests (#821)
     add fbddb11  Update bump-up.command and ivy imports (#824)
     add 0980063  Add SharedZkClient/InnerSharedZkClient implementation (#796)
     add c9a9b7e  Improve MetadataStoreDirectoryAccessor endpoints and fix bugs in ZkRoutingDataReader/Writer
     add add11db  Make MSDS endpoint configurable for HttpRoutingDataReader (#836)
     add f645496  Add FederatedZkClient (#789)
     add 7d46f2a  Make ConfigAccessor and ZkUtil realm-aware (#838)
     add 1f0d278  Implement setRoutingData for MetadataStoreDirectoryService (#844)
     add c7ab0f2  Make RealmAwareZkClient implementations use HttpRoutingDataReader for routing data (#819)
     add 45f0989  Instrument ConfigAccessor's constructors (#856)
     add b01e804  Add rerunFailingTestsCount config to surefire-plugin (#865)
     add 7b57e9e  Make ClusterSetup realm-aware (#861)
     add 92aa631  Make ZkCacheBaseDataAccessor and ZkHelixPropertyStore realm-aware (#863)
     add 6e6862b  Make ZkHelixClusterVerifier and its child classes realm-aware (#867)
     add 73ccbc9  Make ZkBaseDataAccessor realm-aware (#855)
     add 289085f  Make ZKHelixAdmin and ZKHelixManager Realm-aware (#846)
     add 56ebbd1  Reformat ZkBaseDataAccessor (#893)
     add ef027a9  Update listClusters() in ZkHelixAdmin (#895)
     add 7184988  Make ZkBucketDataAccessor realm-aware (#894)
     add f90b194  Make ZkUtil realm-aware (#896)
     add 8523baa  Add integration tests for Helix Java APIs (#892)
     add b16ac22  Fix setRoutingData boolean handling; fix leader forwarding url construction (#902)
     add e3f751c  Use Java Generics and inheritance to reduce duplicate code in Helix API Builders (#899)
     add 2d310f3  Make Helix REST realm-aware (#908)
     add b7f6f3c  Make multiZkEnabled configurable in HelixRestNamespace (#915)
     add e303ef2  Fix getClusters() in ZKHelixAdmin for multi-zk mode (#916)
     add 9381a80  Fix MetadataStoreDirectory routing data cache refresh bug (#933)
     add 66c9964  Fix flaky resource accessor tests (#935)
     add 2e9ac43  Change thread pool used for TTL-based GC in ZkBucketDataAccessor (#945)
     add b8f22fd  Add integration test for Helix Java APIs using different MSDS endpoints (#948)
     add 4dcf624  Fix TestCrushAutoRebalanceNonRack failure of dropping instance
     add 4e57f27  Simplify logging
     add b155c07  Add the CustomizedView Helix property (#723)
     add 50c2644  add CustomizedStateAggregation config (#776)
     add 7c75071  Add java API to add or remove CustomizedStateAggregationConfig (#792)
     add 0c0c9d9  Add REST API to add, remove and update CustomizedStateAggregationConfig (#797)
     add 56d9caa  Implement Helix API for updating customized state (#729)
     add 710c2f8  Add basic functionalities for RoutingTableProvider for CustomizedView (#814)
     add 5db0f75  add listener and config for customized view aggregation (#815)
     add 2c781ab  Improve CustomizedStateProvider tests (#840)
     add 5e08af6  Add intermediate storage for customized state (#827)
     add 28d268b  rename custmized state aggregation config to customized state config (#885)
     add 2c36c45  Use updater to update customized state for concurrency control (#859)
     add 6163b6e  update cache functions for customized view aggregation (#887)
     add a263c43  Add two stages for customized state view aggregation. (#888)
     add 95ac14e  Complete the Routing Table Provider for CustomizedView (#834)
     add 9df8428  Add new stages in Helix generic controller for customized view aggregation. (#851)
     add d9c63eb  minor fix for customized view aggregation (#917)
     add a6c197d  Replace customized view cache with property cache (#869)
     add 526b9ba  Add integration test to customized view aggregation (#912)
     add 9d89e71  fix customized state provider (#928)
     add 2bbb547  Add cache update/delete in customized view aggregation stage (#934)
     add b864e04  Add registration logic for CustomizedView listeners (#944)
     add 82f5e5c  Move routing table provider initialization (#946)
     add 46ce1c1  use new ZNRecord and update test

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (87d077b)
            \
             N -- N -- N   refs/heads/customizeView (46ce1c1)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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  |   81 +
 .../src/main/java/org/apache/helix/ZNRecord.java   |   30 +-
 .../main/java/org/apache/helix/ZNRecordDelta.java  |   11 +-
 .../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                                 |   23 +-
 .../java/org/apache/helix/BaseDataAccessor.java    |    6 +-
 ...edZkSerializer.java => BucketDataAccessor.java} |   37 +-
 .../main/java/org/apache/helix/ConfigAccessor.java |  225 +-
 .../main/java/org/apache/helix/GroupCommit.java    |   14 +-
 .../src/main/java/org/apache/helix/HelixAdmin.java |   62 +-
 .../java/org/apache/helix/HelixCloudProperty.java  |  183 ++
 .../java/org/apache/helix/HelixDataAccessor.java   |   11 +-
 .../main/java/org/apache/helix/HelixManager.java   |    2 +
 .../java/org/apache/helix/HelixManagerFactory.java |    2 +-
 .../org/apache/helix/HelixManagerProperty.java     |   74 +
 .../main/java/org/apache/helix/HelixProperty.java  |   20 +-
 .../org/apache/helix/HelixPropertyFactory.java     |   79 +
 ...Exception.java => HelixRebalanceException.java} |   29 +-
 .../main/java/org/apache/helix/InstanceType.java   |    6 +-
 .../org/apache/helix/LiveInstanceInfoProvider.java |    3 +
 .../main/java/org/apache/helix/PropertyKey.java    |   11 +
 .../java/org/apache/helix/SystemPropertyKeys.java  |   41 -
 .../java/org/apache/helix/ZNRecordAssembler.java   |   29 +-
 .../java/org/apache/helix/ZNRecordBucketizer.java  |   97 +-
 .../java/org/apache/helix/ZNRecordUpdater.java     |   20 +-
 .../cloud/CloudInstanceInformation.java}           |   31 +-
 .../cloud/CloudInstanceInformationProcessor.java}  |   27 +-
 .../apache/helix/api/config/RebalanceConfig.java   |    2 +-
 .../api/config/StateTransitionTimeoutConfig.java   |    2 +-
 .../org/apache/helix/api/listeners/PreFetch.java   |    5 +-
 .../cloud/azure/AzureCloudInstanceInformation.java |   72 +
 .../AzureCloudInstanceInformationProcessor.java    |  160 ++
 .../apache/helix/cloud/azure/AzureConstants.java   |    6 +
 .../constants/CloudProvider.java}                  |    7 +-
 .../apache/helix/common/DedupEventProcessor.java   |    2 +-
 .../apache/helix/common/caches/TaskDataCache.java  |    2 +-
 .../helix/controller/ExternalViewGenerator.java    |    2 +-
 .../helix/controller/GenericHelixController.java   |  129 +-
 .../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            |   35 +-
 .../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}      |   28 +-
 .../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 +-
 .../customizedstate/CustomizedStateProvider.java   |    5 +-
 .../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 +-
 .../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       |  127 +-
 .../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  |  518 ++++-
 .../helix/manager/zk/ZKHelixDataAccessor.java      |   12 +-
 .../apache/helix/manager/zk/ZKHelixManager.java    |  149 +-
 .../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       |  489 +++--
 .../helix/manager/zk/ZkBucketDataAccessor.java     |  401 ++++
 .../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/CloudConfig.java   |  265 +++
 .../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 +-
 .../org/apache/helix/model/CustomizedState.java    |    2 +-
 .../apache/helix/model/CustomizedStateConfig.java  |    4 +-
 .../org/apache/helix/model/CustomizedView.java     |    3 +-
 .../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 +-
 .../org/apache/helix/model/HelixConfigScope.java   |    7 +
 .../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 +-
 .../model/builder/HelixConfigScopeBuilder.java     |    4 +
 .../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}  |   21 +-
 .../implementation/RebalanceFailureCount.java}     |   23 +-
 .../implementation/RebalanceLatencyGauge.java      |   89 +
 .../monitoring/metrics/model/CountMetric.java      |   69 +
 .../monitoring/metrics/model/LatencyMetric.java    |   67 +
 .../metrics/model/Metric.java}                     |   36 +-
 .../model/RatioMetric.java}                        |   46 +-
 .../helix/participant/HelixCustomCodeRunner.java   |   26 +-
 .../statemachine/ScheduledTaskStateModel.java      |    2 +-
 .../apache/helix/spectator/RoutingDataCache.java   |   11 +
 .../apache/helix/store/PropertyJsonSerializer.java |    2 +-
 .../apache/helix/store/ZNRecordJsonSerializer.java |    2 +-
 .../helix/store/zk/AutoFallbackPropertyStore.java  |    2 +-
 .../helix/store/zk/ZkHelixPropertyStore.java       |    3 +-
 .../apache/helix/task/AbstractTaskDispatcher.java  |   11 +-
 .../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  |   47 +-
 .../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  |  101 +-
 .../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 |   44 +-
 .../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 +-
 .../src/main/resources/azure-cloud.properties      |   25 +
 .../src/main/resources/helix-manager.properties    |   24 +
 .../resources/soft-constraint-weight.properties    |   26 +
 .../test/java/org/apache/helix/MockAccessor.java   |   37 +-
 .../java/org/apache/helix/TestConfigAccessor.java  |  187 +-
 .../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 +-
 .../org/apache/helix/cloud/MockHttpClient.java     |   53 +
 ...TestAzureCloudInstanceInformationProcessor.java |   69 +
 .../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 +-
 .../TestComputeAndCleanupCustomizedView.java       |    2 +-
 .../TestCorrectnessOnConnectivityLoss.java         |    2 +-
 .../integration/TestCustomizedViewAggregation.java |   24 +-
 .../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 +-
 .../integration/TestSyncSessionToController.java   |    2 +-
 .../integration/TestWeightBasedRebalanceUtil.java  |    2 +-
 .../integration/TestZkCallbackHandlerLeak.java     |    6 +-
 .../helix/integration/TestZkConnectionLost.java    |    6 +-
 .../TestControllerDataProviderSelectiveUpdate.java |    2 +-
 .../controller/TestControllerLeadershipChange.java |    4 +-
 .../controller/TestControllerLiveLock.java         |    2 +-
 .../controller/TestWatcherLeakageOnController.java |  102 +
 .../manager/ClusterControllerManager.java          |    5 +-
 .../manager/ClusterDistributedController.java      |    5 +-
 .../manager/MockParticipantManager.java            |   15 +-
 .../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          |  732 +++++++
 .../paticipant/TestInstanceAutoJoin.java           |   62 +-
 .../TestStateTransitionTimeoutWithResource.java    |    2 +-
 .../TestCrushAutoRebalanceNonRack.java             |   22 +-
 .../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 ++
 .../TestRoutingTableProviderFromCurrentStates.java |  174 +-
 .../helix/integration/task/TaskTestUtil.java       |    2 +-
 .../task/TestTaskSchedulingTwoCurrentStates.java   |  216 ++
 .../helix/integration/task/TestTaskStopQueue.java  |    2 +-
 .../task/TestWorkflowContextWithoutConfig.java     |   71 +-
 .../helix/integration/task/WorkflowGenerator.java  |   27 +-
 .../manager/zk/TestAddBuiltInStateModelDef.java    |    2 +-
 ...andleNewSession.java => TestHandleSession.java} |  137 +-
 .../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   |   30 +-
 .../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  |  220 +-
 .../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 |   35 +-
 .../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 +-
 .../apache/helix/model/cloud/TestCloudConfig.java  |  224 ++
 .../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 +-
 .../helix/task/TestTargetedTaskStateChange.java    |  329 +++
 .../org/apache/helix/tools/TestClusterSetup.java   |  102 +-
 .../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 +-
 helix-core/src/test/resources/AzureResponse.json   |  104 +
 ...eUsageCalculator.MeasureBaselineDivergence.json |   37 +
 ...chExternalViewVerifier.ComputeIdealMapping.json |   14 +-
 helix-rest/pom.xml                                 |   12 +-
 .../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    |  374 ++++
 .../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    |  500 +++--
 .../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              |  375 ++++
 .../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     |  454 ++++-
 .../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    |  146 +-
 .../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 |  327 +++
 .../exception/InvalidRoutingDataException.java     |   18 +-
 .../mock/MockMetadataStoreDirectoryServer.java     |  161 ++
 .../helix/msdcommon/util/ZkValidationUtil.java     |   32 +-
 .../src/test/conf/testng.xml                       |   27 +
 .../helix/msdcommon/constant/TestConstants.java    |   23 +-
 .../msdcommon/datamodel/TestTrieRoutingData.java   |  346 ++++
 .../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       |  205 ++
 .../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 +-
 680 files changed, 36132 insertions(+), 8160 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%)
 create mode 100644 helix-common/src/main/java/org/apache/helix/SystemPropertyKeys.java
 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/monitoring/SensorNameProvider.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%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/HelixCloudProperty.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/HelixManagerProperty.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/HelixPropertyFactory.java
 copy helix-core/src/main/java/org/apache/helix/{HelixException.java => HelixRebalanceException.java} (50%)
 delete mode 100644 helix-core/src/main/java/org/apache/helix/SystemPropertyKeys.java
 copy helix-core/src/main/java/org/apache/helix/{task/beans/WorkflowBean.java => api/cloud/CloudInstanceInformation.java} (60%)
 copy helix-core/src/main/java/org/apache/helix/{task/beans/WorkflowBean.java => api/cloud/CloudInstanceInformationProcessor.java} (56%)
 create mode 100644 helix-core/src/main/java/org/apache/helix/cloud/azure/AzureCloudInstanceInformation.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/cloud/azure/AzureCloudInstanceInformationProcessor.java
 create mode 100644 helix-core/src/main/java/org/apache/helix/cloud/azure/AzureConstants.java
 copy helix-core/src/main/java/org/apache/helix/{monitoring/SensorNameProvider.java => cloud/constants/CloudProvider.java} (88%)
 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/{store/ZNRecordJsonSerializer.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
 create mode 100644 helix-core/src/main/java/org/apache/helix/model/CloudConfig.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/{LiveInstanceInfoProvider.java => monitoring/metrics/implementation/RebalanceCounter.java} (60%)
 copy helix-core/src/{test/java/org/apache/helix/integration/manager/ZkTestManager.java => main/java/org/apache/helix/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/{manager/zk/PathBasedZkSerializer.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/azure-cloud.properties
 create mode 100644 helix-core/src/main/resources/helix-manager.properties
 create mode 100644 helix-core/src/main/resources/soft-constraint-weight.properties
 create mode 100644 helix-core/src/test/java/org/apache/helix/cloud/MockHttpClient.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/cloud/TestAzureCloudInstanceInformationProcessor.java
 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
 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/integration/task/TestTaskSchedulingTwoCurrentStates.java
 rename helix-core/src/test/java/org/apache/helix/manager/zk/{TestHandleNewSession.java => TestHandleSession.java} (80%)
 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/model/cloud/TestCloudConfig.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/monitoring/mbeans/TestInstanceMonitor.java
 create mode 100644 helix-core/src/test/java/org/apache/helix/task/TestTargetedTaskStateChange.java
 create mode 100644 helix-core/src/test/resources/AzureResponse.json
 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/test/java/org/apache/helix/controller/stages/TestClusterEvent.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%)