You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by hu...@apache.org on 2020/04/01 22:31:21 UTC
[helix] branch zooscalability_backup updated (e5c2f77 -> 71171a8)
This is an automated email from the ASF dual-hosted git repository.
hulee pushed a change to branch zooscalability_backup
in repository https://gitbox.apache.org/repos/asf/helix.git.
from e5c2f77 Removed useless znodes to resolve dependency between test methods in TestZKUtil (#693)
add 48cabc5 Bump jackson-databind from 2.9.5 to 2.9.10.1 in /helix-rest (#597)
add db2e373 Integration test for controller connect and disconnect (#681)
add ecf6bb8 Add workflow garbage collector (#705)
add bee3ed2 Merge Waged rebalancer branch code to master. (#724)
add 2676f13 Revert "Merge Waged rebalancer branch code to master. (#724)"
add aed6d7e Define the WAGED rebalancer interfaces.
add 786d238 Adding the configuration items of the WAGED rebalancer. (#348)
add 253851a Implement the WAGED rebalancer cluster model (#362)
add 41aee1b Change the rebalancer assignment record to be ResourceAssignment instead of IdealState. (#398)
add d4d4941 Convert all the internal assignment state objects to be ResourceAssignment. (#399)
add 28b65aa Implement Cluster Model Provider. (#392)
add f93aeb5 Add cluster level default instance config. (#413)
add 4372acf Add ChangeDetector interface and ResourceChangeDetector implementation (#388)
add bc6d6f0 Redefine the hard/soft constraints (#422)
add 73e8336 Refine the WAGED rebalancer related interfaces for integration (#431)
add 3995879 Revert "Refine the WAGED rebalancer related interfaces for integration (#431)" (#437)
add b273df4 Resubmit the change: Refine the WAGED rebalancer related interfaces for integration (#431)
add 8cbfdce Modify the expected change type from CONFIG to CLUSTER_CONFIG in the WAGED rebalancer. (#438)
add ff82c34 Add special treatment for ClusterConfig
add 27630a9 Record the replica objects in the AssignableNode in addition to the partition name (#440)
add eb437c9 Add BucketDataAccessor for large writes
add cf8520a Implement the basic constraint based algorithm (#381)
add 0895c0d Validate the instance capacity/partition weight configuration while constructing the assignable instances (#451)
add 34a2cf8 Implement the WAGED rebalancer with the limited functionality. (#443)
add dd80b9e HardConstraints Implementation and unit tests (#433)
add a4010e2 Implement AssignmentMetadataStore (#453)
add 63b45ff Fix TestWagedRebalancer and add constructor in AssignmentMetadataStore
add cf7b7a5 Implement one of the soft constraints (#450)
add e49d26b Add soft constraint: ResourcetopStateAntiAffinityConstraint (#465)
add 536062d Implement MaxCapacityUsageInstanceConstraint soft constraint (#463)
add a07296a Add soft constraint: ResourcePartitionAntiAffinityConstraint (#464)
add de800d7 Improve ResourceTopStateAntiAffinityConstraint (#475)
add 7a34f2c Adjust the expected replica count according to fault zone count. (#476)
add d2ffd00 PartitionMovementSoftConstraint Implementation (#474)
add dcc4862 Add the remaining implementation of ConstraintBasedAlgorithmFactory (#478)
add 3e0554b Integrate the WAGED rebalancer with all the related components. (#466)
add 7bb7f57 Separate AssignableNode properties by Immutable and Mutable (#485)
add 71948ec Add delayed rebalance and user-defined preference list features to the WAGED rebalancer. (#456)
add 95a55d6 Enable maintenance mode for the WAGED rebalancer.
add 43a9bce Adjust the topology processing logic for instance to ensure backward compatibility.
add 081b3f2 Load soft constraint weight from resources/properties file (#492)
add 359d6de Add latency metric components for WAGED rebalancer (#490)
add b287fb5 Fixing rebalance cache issue and stablize the tests. (#510)
add a318890 More strict partition weight validation while creating the cluster model. (#511)
add 08bc164 Increase parallelism for ZkBucketDataAccessor (#506)
add bc2d0cf The WAGED rebalancer returns the previously calculated assignment on calculation failure (#514)
add 2d1e8cf Make log clearer after finishing calculateAssignment. (#531)
add 285318a Implement monitoring mbeans for the WAGED rebalancer. (#525)
add afb19a1 Refine the rebalance scope calculating logic in the WAGED rebalancer. (#519)
add b63a895 Make WagedRebalancer static by creating a ThreadLocal (#540)
add f48f4d2 Change change detector to a regular field in the WAGED rebalancer instead of static threadlocal. (#543)
add 3f237df Refactor soft constraints to simply the algorithm and fix potential issues. (#520)
add cd3de5a Minor fix for the constraints related tests. (#545)
add dcda863 Adjust the replica rebalance calculating ordering to avoid static order. (#535)
add e27c6fa Implement increment() method in CountMetric class. (#537)
add f7df84c Modify the ivy file to add the new math3 lib dependency. (#546)
add 6e37673 Fix a missing parameter when the WAGED rebalancer init the change detector. (#547)
add 76e0fc0 Add the new Rebalancer monitor domain to the active domain list. (#550)
add dc40825 Refine ivy file config. The org were not configured correctly. (#551)
add e5e3689 Use a deep copy of the new best possible assignment for measuring baseline divergence. (#542)
add 2b3f9fa Add max capacity usage metric for instance monitor. (#548)
add c2b7ac7 Fix formula incorrection in the comment for measuring baseline divergence. (#559)
add ae22186 Avoid redundant writes in AssignmentMetadataStore (#564)
add 5691d3a Filter resource map with ideal states for instance capacity metrics. (#574)
add 0b1b337 Introduce Dry-run Waged Rebalancer for the verifiers and tests. (#573)
add e93e050 Change ClusterConfig.setDefaultCapacityMap to be private. (#590)
add 8a8478a Add Java API for adding and validating resources for WAGED rebalancer (#570)
add edc8a86 Change calculation for baseline divergence. (#598)
add 435360f Improve the WAGED rebalancer performance. (#586)
add f4b67ae Fix the unstable test TestZeroReplicaAvoidance. (#603)
add 37fd496 Add REST API endpoints for WAGED Rebalancer (#611)
add 6dbc725 Fix a potential issue in the ResourceChangeSnapshot. (#635)
add 4c48d02 Simply and enhance the RebalanceLatencyGauge so it can be used in multi-threads. (#636)
add 30695f0 Add new WAGED rebalancer config item "GLOBAL_REBALANCE_ASYNC_MODE". (#637)
add a2771cb Decouple the event type and the scheduled rebalance cache refresh option. (#638)
add 75904ef Improve the algorithm so it prioritizes the assignment to the idle nodes when the constraint evaluation results are the same (#651)
add 39f3959 Refine the WAGED rebalancer to minimize the partial rebalance workload. (#639)
add adfaf4e Refine methods name and comments. (#664)
add 6b73653 Asynchronously calculating the Baseline (#632)
add fe4ecb8 Reorgnize the test case so the new WAGED expand cluster tests are not skipped. (#670)
add a1557df Fix the Helix rest tests by cleaning up the environment before testing. (#679)
add feb2562 Add instance capacity gauge (#557)
add eb40e15 Add resource partition weight gauge (#686)
add 71c79fd Add WAGED rebalancer reset method to clean up cached status. (#696)
add ec3568d Reset the WAGED rebalancer once the controller newly acquires leadership. (#690)
add 85f246a Fix the watcher leakage issue (#688)
add 637e943 Fix the unstable test TestWagedRebalance.testRebalancerReset. (#735)
add 2ba469d Change the WAGED rebalancer missing error log to warning. (#740)
add b227b3b Add metrics-common, zookeeper-api, helix-common modules (#684)
add afc62ab Fix the flaky test (#749)
add 12f11a3 Fix ConcurrentModification exception in Workflow Garbage Collection (#741)
add 19811ea Remove workflow garbage collection (#803)
add 98a4be3 Fix the ConcurrentModificationException in ClusterEvent.java (#785)
add 0f3c64b Add system property options to config write size limit for ZNRecord Serializer (#809)
add 496d573 Async write operation should not throw Exception for serializing error (#845)
add 1747ac0 Fix type cast in TestRawZkClient (#853)
add 89dfe91 Add logs and throw exceptions in getInstanceById (#858)
add 3e264f0 Downgrade the log level to INFO when isInstanceSetup() fails. (#870)
add fcf78cd Generate cancellation message for currentState=null desiredState=DROPPED (#831)
add 5de66f2 Update bump-up.command with metrics-common
add 5dd01c0 Fix testInstancesStoppable_zoneBased (#880)
add 26da7bf Change helix-core's ivy import for commons-math3
add e5c2a23 Migrate the IdealState usage to read Resource Config for the delayed rebalance. (#878)
add 1651f9e Standardize the logging message format in ClusterAccessor and ConfigAccessor (#886)
add ecae243 Add REST APIs for get, set, update RestConfig (#849)
add c966784 Remove possible score-tie between two AssignableNodes (#889)
add f96a3c4 Support enableCompression in workflow and job configs (#883)
add f2540fd Add MetadataStoreRoutingData interface and TrieRoutingData class to helix-rest
add c1a3132 Enable two test runs with multiZk system property (#710)
add 3d70668 Upgrade AbstractTestClass with multi-ZK support in helix-rest (#717)
add 952809a Upgrade ZkTestBase with multi-ZK support in helix-core (#712)
add cc7846c Add MockMetadataStoreDirectoryServer (#719)
add 9984133 Add MetadataStoreRoutingDataReader interface and ZkRoutingDataReader class to helix-rest (#714)
add 899e04e Add MetadataStoreDirectory and ZkMetadataStoreDirectory (#720)
add eae0416 Add TrieRoutingData constructor (#731)
add ab62683 Add MetadataStoreRoutingDataWriter with DistributedLeaderElection (#727)
add ff93b28 Add REST read endpoints to Helix Rest to provide resource access to metadata store directory (#744)
add bc67f8b Rebase ZooScalability from upstream master
add 33962f1 Implement getAllMappingUnderPath and getMetadataStoreRealm in ZkMetadataStoreDirectory
add 3e73a82 Add write REST endpoints to helix rest for metadata store directory (#757)
add 0ab3a1e Add RealmAwareZkClient and RealmAwareZkClientFactory interfaces (#745)
add cfba5f8 Add validation logic to MSD write operations (#759)
add 889a9b8 Create metadata-store-directory-common module (#771)
add c3685a0 Fix tests in apache/zooscalability and rebase from apache/master (#787)
add 53ffe74 Add DedicatedZkClient and update DedicatedZkClientFactory (#765)
add 3e28ad6 Add REST read endpoints to helix-rest for metadata store directory (#761)
add ae53ed2 [helix-rest] Add endpoint to get namespace routing data (#799)
add 7e3688f Add HttpRoutingDataReader (#775)
add 3f29468 Add getShardingKeyInPath to MetadataStoreRoutingData (#817)
add aa1f484 Implement request forwarding for ZkRoutingDataWriter (#788)
add 388d0c0 Fix InvalidRoutingData error message in tests (#821)
add 082f2df Update bump-up.command and ivy imports (#824)
add d607e99 Add SharedZkClient/InnerSharedZkClient implementation (#796)
add 9e49246 Improve MetadataStoreDirectoryAccessor endpoints and fix bugs in ZkRoutingDataReader/Writer
add 105dc0d Make MSDS endpoint configurable for HttpRoutingDataReader (#836)
add 06450c3 Add FederatedZkClient (#789)
add 02f2a90 Make ConfigAccessor and ZkUtil realm-aware (#838)
add 8e7c5e1 Implement setRoutingData for MetadataStoreDirectoryService (#844)
add 0709544 Make RealmAwareZkClient implementations use HttpRoutingDataReader for routing data (#819)
add afd1524 Instrument ConfigAccessor's constructors (#856)
add cb27e26 Add rerunFailingTestsCount config to surefire-plugin (#865)
add a8111bd Make ClusterSetup realm-aware (#861)
add 0bb4150 Make ZkCacheBaseDataAccessor and ZkHelixPropertyStore realm-aware (#863)
add 6ca403b Make ZkHelixClusterVerifier and its child classes realm-aware (#867)
add 1085e7d Make ZkBaseDataAccessor realm-aware (#855)
add 57ce75c Make ZKHelixAdmin and ZKHelixManager Realm-aware (#846)
add e3a3385 Reformat ZkBaseDataAccessor (#893)
add 054e107 Update listClusters() in ZkHelixAdmin (#895)
add 9a4f308 Make ZkBucketDataAccessor realm-aware (#894)
add c8998f7 Make ZkUtil realm-aware (#896)
add 1faaaca Add integration tests for Helix Java APIs (#892)
add f92b5a5 Fix setRoutingData boolean handling; fix leader forwarding url construction (#902)
add 30ea659 Use Java Generics and inheritance to reduce duplicate code in Helix API Builders (#899)
add e473cec Make Helix REST realm-aware (#908)
add a154593 Make multiZkEnabled configurable in HelixRestNamespace (#915)
add 71171a8 Fix getClusters() in ZKHelixAdmin for multi-zk mode (#916)
No new revisions were added by this update.
Summary of changes:
bump-up.command | 71 +
helix-admin-webapp/pom.xml | 3 +
.../org/apache/helix/webapp/HelixAdminWebApp.java | 2 +-
.../resources/ClusterRepresentationUtil.java | 4 +-
.../helix/webapp/resources/ClusterResource.java | 4 +-
.../helix/webapp/resources/ClustersResource.java | 4 +-
.../helix/webapp/resources/ConfigResource.java | 4 +-
.../helix/webapp/resources/ConstraintResource.java | 4 +-
.../helix/webapp/resources/ControllerResource.java | 4 +-
.../resources/ControllerStatusUpdateResource.java | 2 +-
.../webapp/resources/CurrentStateResource.java | 2 +-
.../webapp/resources/CurrentStatesResource.java | 2 +-
.../helix/webapp/resources/ErrorResource.java | 2 +-
.../helix/webapp/resources/ErrorsResource.java | 2 +-
.../webapp/resources/ExternalViewResource.java | 2 +-
.../helix/webapp/resources/IdealStateResource.java | 4 +-
.../helix/webapp/resources/InstanceResource.java | 2 +-
.../helix/webapp/resources/InstancesResource.java | 4 +-
.../helix/webapp/resources/JobQueueResource.java | 4 +-
.../helix/webapp/resources/JobQueuesResource.java | 4 +-
.../apache/helix/webapp/resources/JobResource.java | 4 +-
.../helix/webapp/resources/JsonParameters.java | 2 +-
.../webapp/resources/ResourceGroupResource.java | 2 +-
.../webapp/resources/ResourceGroupsResource.java | 4 +-
.../helix/webapp/resources/ResourceUtil.java | 2 +-
.../webapp/resources/SchedulerTasksResource.java | 2 +-
.../helix/webapp/resources/StateModelResource.java | 4 +-
.../webapp/resources/StateModelsResource.java | 4 +-
.../webapp/resources/StatusUpdateResource.java | 2 +-
.../webapp/resources/StatusUpdatesResource.java | 2 +-
.../helix/webapp/resources/WorkflowsResource.java | 4 +-
.../helix/webapp/resources/ZkChildResource.java | 4 +-
.../helix/webapp/resources/ZkPathResource.java | 4 +-
.../org/apache/helix/webapp/AdminTestBase.java | 4 +-
.../org/apache/helix/webapp/AdminTestHelper.java | 2 +-
.../helix/webapp/TestClusterManagementWebapp.java | 2 +-
.../apache/helix/webapp/TestDisableResource.java | 2 +-
.../helix/webapp/TestHelixAdminScenariosRest.java | 2 +-
.../helix/webapp/TestResetPartitionState.java | 2 +-
.../webapp/resources/TestJobQueuesResource.java | 2 +-
helix-common/LICENSE | 270 +++
helix-common/NOTICE | 37 +
.../helix-common-0.9.2-SNAPSHOT.ivy | 37 +-
{helix-admin-webapp => helix-common}/pom.xml | 78 +-
helix-common/src/assemble/assembly.xml | 60 +
.../main/java/org/apache/helix/HelixException.java | 0
.../java/org/apache/helix/SystemPropertyKeys.java | 32 +
.../src/main/java/org/apache/helix/ZNRecord.java | 30 +-
.../main/java/org/apache/helix/ZNRecordDelta.java | 16 +-
.../zk/serializer/JacksonPayloadSerializer.java | 15 +-
.../manager/zk/serializer/PayloadSerializer.java | 15 +-
helix-common/src/test/conf/testng.xml | 27 +
.../src/test/resources/log4j.properties | 0
helix-core/helix-core-0.9.2-SNAPSHOT.ivy | 2 +-
helix-core/pom.xml | 18 +-
.../java/org/apache/helix/BaseDataAccessor.java | 6 +-
...edZkSerializer.java => BucketDataAccessor.java} | 37 +-
.../main/java/org/apache/helix/ConfigAccessor.java | 160 +-
.../main/java/org/apache/helix/GroupCommit.java | 14 +-
.../src/main/java/org/apache/helix/HelixAdmin.java | 47 +
.../java/org/apache/helix/HelixDataAccessor.java | 11 +-
.../main/java/org/apache/helix/HelixManager.java | 2 +
.../main/java/org/apache/helix/HelixProperty.java | 20 +-
...Exception.java => HelixRebalanceException.java} | 29 +-
.../main/java/org/apache/helix/HelixTimerTask.java | 5 +
.../main/java/org/apache/helix/InstanceType.java | 6 +-
.../org/apache/helix/LiveInstanceInfoProvider.java | 3 +
.../java/org/apache/helix/ZNRecordAssembler.java | 29 +-
.../java/org/apache/helix/ZNRecordBucketizer.java | 97 +-
.../java/org/apache/helix/ZNRecordUpdater.java | 20 +-
.../apache/helix/api/config/RebalanceConfig.java | 2 +-
.../api/config/StateTransitionTimeoutConfig.java | 2 +-
.../org/apache/helix/api/listeners/PreFetch.java | 5 +-
.../apache/helix/common/DedupEventProcessor.java | 2 +-
.../apache/helix/common/caches/TaskDataCache.java | 2 +-
.../helix/controller/ExternalViewGenerator.java | 2 +-
.../helix/controller/GenericHelixController.java | 131 +-
.../helix/controller/HelixControllerMain.java | 2 +-
.../helix/controller/HierarchicalDataHolder.java | 2 +-
.../controller/changedetector/ChangeDetector.java | 57 +
.../changedetector/ResourceChangeDetector.java | 199 ++
.../changedetector/ResourceChangeSnapshot.java | 157 ++
.../ResourceControllerDataProvider.java | 36 +-
.../WorkflowControllerDataProvider.java | 2 +-
.../controller/rebalancer/AbstractRebalancer.java | 2 +-
.../controller/rebalancer/AutoRebalancer.java | 2 +-
.../rebalancer/DelayedAutoRebalancer.java | 206 +-
.../controller/rebalancer/StatefulRebalancer.java | 37 +
.../dataprovider/ZkBasedCapacityProvider.java | 2 +-
.../ZkBasedPartitionWeightProvider.java | 2 +-
.../AbstractEvenDistributionRebalanceStrategy.java | 2 +-
.../rebalancer/strategy/AutoRebalanceStrategy.java | 2 +-
.../strategy/ConstraintRebalanceStrategy.java | 2 +-
.../strategy/CrushRebalanceStrategy.java | 2 +-
.../strategy/MultiRoundCrushRebalanceStrategy.java | 2 +-
.../rebalancer/strategy/RebalanceStrategy.java | 2 +-
.../rebalancer/util/DelayedRebalanceUtil.java | 282 +++
.../rebalancer/util/ResourceUsageCalculator.java | 192 ++
.../rebalancer/util/WagedValidationUtil.java | 91 +
.../rebalancer/waged/AssignmentMetadataStore.java | 212 ++
.../rebalancer/waged/RebalanceAlgorithm.java | 43 +
.../rebalancer/waged/WagedRebalancer.java | 788 +++++++
.../constraints/ConstraintBasedAlgorithm.java | 230 +++
.../ConstraintBasedAlgorithmFactory.java | 82 +
.../constraints/FaultZoneAwareConstraint.java} | 25 +-
.../waged/constraints/HardConstraint.java | 47 +
.../InstancePartitionsCountConstraint.java | 41 +
.../MaxCapacityUsageInstanceConstraint.java | 42 +
.../waged/constraints/NodeCapacityConstraint.java | 50 +
.../NodeMaxPartitionLimitConstraint.java | 43 +
.../constraints/PartitionMovementConstraint.java | 96 +
.../constraints/ReplicaActivateConstraint.java} | 23 +-
.../ResourcePartitionAntiAffinityConstraint.java | 43 +
.../ResourceTopStateAntiAffinityConstraint.java | 44 +
.../SamePartitionOnInstanceConstraint.java} | 24 +-
.../waged/constraints/SoftConstraint.java | 90 +
.../waged/constraints/UsageSoftConstraint.java | 85 +
.../constraints/ValidGroupTagConstraint.java} | 23 +-
.../rebalancer/waged/model/AssignableNode.java | 374 ++++
.../rebalancer/waged/model/AssignableReplica.java | 161 ++
.../rebalancer/waged/model/ClusterContext.java | 172 ++
.../rebalancer/waged/model/ClusterModel.java | 132 ++
.../waged/model/ClusterModelProvider.java | 507 +++++
.../rebalancer/waged/model/OptimalAssignment.java | 93 +
.../helix/controller/stages/AttributeName.java | 3 +-
.../stages/BestPossibleStateCalcStage.java | 180 +-
.../helix/controller/stages/ClusterDataCache.java | 2 +-
.../helix/controller/stages/ClusterEvent.java | 6 +-
.../stages/CurrentStateComputationStage.java | 75 +
.../controller/stages/CurrentStateOutput.java | 23 +
.../stages/ExternalViewComputeStage.java | 7 +-
.../controller/stages/MessageGenerationPhase.java | 145 +-
.../controller/stages/PersistAssignmentStage.java | 4 +-
.../stages/TaskGarbageCollectionStage.java | 1 +
.../controller/strategy/AutoRebalanceStrategy.java | 2 +-
.../org/apache/helix/examples/ExampleHelper.java | 8 +-
.../helix/examples/IdealStateBuilderExample.java | 5 +-
.../apache/helix/examples/IdealStateExample.java | 5 +-
.../java/org/apache/helix/examples/Quickstart.java | 7 +-
.../examples/WeightAwareRebalanceUtilExample.java | 22 +-
.../ParticipantHealthReportCollector.java | 2 +-
.../ParticipantHealthReportCollectorImpl.java | 2 +-
.../healthcheck/ParticipantHealthReportTask.java | 2 -
.../apache/helix/manager/zk/BasicZkSerializer.java | 26 +-
.../helix/manager/zk/ByteArraySerializer.java | 5 +-
.../apache/helix/manager/zk/CallbackHandler.java | 17 +-
.../helix/manager/zk/ChainedPathZkSerializer.java | 5 +-
.../helix/manager/zk/ControllerManagerHelper.java | 2 +-
.../helix/manager/zk/CurStateCarryOverUpdater.java | 4 +-
.../zk/DefaultSchedulerMessageHandlerFactory.java | 2 +-
.../manager/zk/DistributedLeaderElection.java | 2 +-
.../manager/zk/GenericBaseDataAccessorBuilder.java | 145 ++
.../helix/manager/zk/GenericZkHelixApiBuilder.java | 139 ++
.../apache/helix/manager/zk/HelixGroupCommit.java | 6 +-
.../helix/manager/zk/ParticipantManager.java | 16 +-
.../helix/manager/zk/PathBasedZkSerializer.java | 28 +-
.../apache/helix/manager/zk/WriteThroughCache.java | 2 +-
.../helix/manager/zk/ZKExceptionHandler.java | 2 +-
.../org/apache/helix/manager/zk/ZKHelixAdmin.java | 472 ++++-
.../helix/manager/zk/ZKHelixDataAccessor.java | 12 +-
.../apache/helix/manager/zk/ZKHelixManager.java | 124 +-
.../java/org/apache/helix/manager/zk/ZKUtil.java | 113 +-
...ializer.java => ZNRecordJacksonSerializer.java} | 22 +-
.../helix/manager/zk/ZNRecordSerializer.java | 116 +-
.../manager/zk/ZNRecordStreamingSerializer.java | 293 +--
.../apache/helix/manager/zk/ZkAsyncCallbacks.java | 176 +-
.../helix/manager/zk/ZkBaseDataAccessor.java | 484 +++--
.../helix/manager/zk/ZkBucketDataAccessor.java | 398 ++++
.../helix/manager/zk/ZkCacheBaseDataAccessor.java | 122 +-
.../helix/manager/zk/ZkCacheEventThread.java | 2 +-
.../apache/helix/manager/zk/ZkCallbackCache.java | 6 +-
.../java/org/apache/helix/manager/zk/ZkClient.java | 15 +-
.../manager/zk/ZkSessionMismatchedException.java | 18 -
.../zk/client/DedicatedZkClientFactory.java | 50 +-
.../helix/manager/zk/client/HelixZkClient.java | 441 +---
.../manager/zk/client/HelixZkClientFactory.java | 46 -
.../helix/manager/zk/client/SharedZkClient.java | 111 +-
.../manager/zk/client/SharedZkClientFactory.java | 102 +-
.../manager/zk/client/ZkConnectionManager.java | 120 +-
.../manager/zk/zookeeper/IZkStateListener.java | 43 +-
.../helix/manager/zk/zookeeper/ZkClient.java | 2145 +-------------------
.../helix/manager/zk/zookeeper/ZkConnection.java | 174 +-
.../org/apache/helix/messaging/ZNRecordRow.java | 2 +-
.../handling/HelixStateTransitionHandler.java | 8 +-
.../java/org/apache/helix/model/AlertHistory.java | 2 +-
.../java/org/apache/helix/model/AlertStatus.java | 2 +-
.../main/java/org/apache/helix/model/Alerts.java | 2 +-
.../java/org/apache/helix/model/ClusterConfig.java | 230 ++-
.../org/apache/helix/model/ClusterConstraints.java | 2 +-
.../org/apache/helix/model/ControllerHistory.java | 2 +-
.../java/org/apache/helix/model/CurrentState.java | 2 +-
.../main/java/org/apache/helix/model/Error.java | 2 +-
.../java/org/apache/helix/model/ExternalView.java | 2 +-
.../java/org/apache/helix/model/HealthStat.java | 2 +-
.../java/org/apache/helix/model/IdealState.java | 2 +-
.../org/apache/helix/model/InstanceConfig.java | 54 +-
.../org/apache/helix/model/LeaderStandbySMD.java | 2 +-
.../java/org/apache/helix/model/LiveInstance.java | 2 +-
.../org/apache/helix/model/MaintenanceSignal.java | 2 +-
.../org/apache/helix/model/MasterSlaveSMD.java | 2 +-
.../main/java/org/apache/helix/model/Message.java | 2 +-
.../org/apache/helix/model/OnlineOfflineSMD.java | 2 +-
.../org/apache/helix/model/ParticipantHistory.java | 2 +-
.../java/org/apache/helix/model/PauseSignal.java | 2 +-
.../org/apache/helix/model/PersistentStats.java | 2 +-
.../java/org/apache/helix/model/RESTConfig.java | 2 +-
.../org/apache/helix/model/ResourceAssignment.java | 2 +-
.../org/apache/helix/model/ResourceConfig.java | 199 +-
.../org/apache/helix/model/ScheduledTaskSMD.java | 2 +-
.../apache/helix/model/StateModelDefinition.java | 7 +-
.../java/org/apache/helix/model/StatusUpdate.java | 2 +-
.../org/apache/helix/model/StorageSchemataSMD.java | 2 +-
.../main/java/org/apache/helix/model/TaskSMD.java | 2 +-
.../helix/model/builder/IdealStateBuilder.java | 2 +-
.../helix/monitoring/ZKPathDataDumpTask.java | 2 +-
.../monitoring/mbeans/ClusterStatusMonitor.java | 92 +-
.../helix/monitoring/mbeans/InstanceMonitor.java | 192 +-
.../monitoring/mbeans/InstanceMonitorMBean.java | 51 -
.../monitoring/mbeans/MonitorDomainNames.java | 3 +-
.../helix/monitoring/mbeans/ResourceMonitor.java | 99 +-
.../helix/monitoring/mbeans/ZkClientMonitor.java | 231 +--
.../monitoring/mbeans/ZkClientPathMonitor.java | 228 +--
.../mbeans/dynamicMBeans/DynamicMBeanProvider.java | 78 +-
.../mbeans/dynamicMBeans/SimpleDynamicMetric.java | 2 +-
.../helix/monitoring/metrics/MetricCollector.java | 99 +
.../metrics/WagedRebalancerMetricCollector.java | 125 ++
.../implementation/BaselineDivergenceGauge.java | 68 +
.../metrics/implementation/RebalanceCounter.java} | 23 +-
.../implementation/RebalanceFailureCount.java} | 21 +-
.../implementation/RebalanceLatencyGauge.java | 89 +
.../monitoring/metrics/model/CountMetric.java | 69 +
.../monitoring/metrics/model/LatencyMetric.java | 67 +
.../metrics/model/Metric.java} | 29 +-
.../model/RatioMetric.java} | 46 +-
.../helix/participant/HelixCustomCodeRunner.java | 26 +-
.../statemachine/ScheduledTaskStateModel.java | 2 +-
.../apache/helix/store/PropertyJsonSerializer.java | 2 +-
.../apache/helix/store/ZNRecordJsonSerializer.java | 2 +-
.../helix/store/zk/AutoFallbackPropertyStore.java | 2 +-
.../helix/store/zk/ZkHelixPropertyStore.java | 3 +-
.../helix/task/DeprecatedTaskRebalancer.java | 4 +-
.../main/java/org/apache/helix/task/JobConfig.java | 22 +-
.../java/org/apache/helix/task/JobContext.java | 2 +-
.../java/org/apache/helix/task/JobDispatcher.java | 2 +-
.../java/org/apache/helix/task/TaskConstants.java | 2 +-
.../java/org/apache/helix/task/TaskDriver.java | 12 +-
.../main/java/org/apache/helix/task/TaskUtil.java | 5 +-
.../java/org/apache/helix/task/WorkflowConfig.java | 13 +
.../org/apache/helix/task/WorkflowContext.java | 2 +-
.../org/apache/helix/task/WorkflowDispatcher.java | 2 +-
.../java/org/apache/helix/task/beans/JobBean.java | 1 +
.../org/apache/helix/task/beans/WorkflowBean.java | 2 +
.../helix/tools/ClusterExternalViewVerifier.java | 2 +-
.../helix/tools/ClusterLiveNodesVerifier.java | 2 +-
.../java/org/apache/helix/tools/ClusterSetup.java | 73 +-
.../apache/helix/tools/ClusterStateVerifier.java | 14 +-
.../org/apache/helix/tools/ClusterVerifier.java | 8 +-
.../BestPossibleExternalViewVerifier.java | 151 +-
.../ClusterVerifiers/ClusterLiveNodesVerifier.java | 32 +-
.../StrictMatchExternalViewVerifier.java | 107 +-
.../ClusterVerifiers/ZkHelixClusterVerifier.java | 140 +-
.../helix/tools/DefaultIdealStateCalculator.java | 2 +-
.../tools/IdealCalculatorByConsistentHashing.java | 2 +-
.../helix/tools/IdealStateCalculatorByRush.java | 2 +-
.../tools/IdealStateCalculatorByShuffling.java | 2 +-
.../java/org/apache/helix/tools/MessagePoster.java | 6 +-
.../helix/tools/StateModelConfigGenerator.java | 2 +-
.../java/org/apache/helix/tools/TestExecutor.java | 10 +-
.../java/org/apache/helix/tools/TestTrigger.java | 2 +-
.../java/org/apache/helix/tools/ZnodeOpArg.java | 2 +-
.../java/org/apache/helix/tools/ZnodeValue.java | 2 +-
.../tools/commandtools/CurrentStateCleanUp.java | 4 +-
.../tools/commandtools/IntegrationTestUtil.java | 6 +-
.../helix/tools/commandtools/LocalZKServer.java | 7 +-
.../apache/helix/tools/commandtools/ZKDumper.java | 7 +-
.../apache/helix/tools/commandtools/ZkCopy.java | 4 +-
.../tools/commandtools/ZkLogCSVFormatter.java | 2 +-
.../helix/util/ExponentialBackoffStrategy.java | 52 +-
.../org/apache/helix/util/GZipCompressionUtil.java | 56 +-
.../main/java/org/apache/helix/util/HelixUtil.java | 25 +-
.../apache/helix/util/InstanceValidationUtil.java | 29 +-
.../java/org/apache/helix/util/RebalanceUtil.java | 7 +-
.../org/apache/helix/util/StatusUpdateUtil.java | 2 +-
.../helix/util/WeightAwareRebalanceUtil.java | 2 +-
.../java/org/apache/helix/util/ZKClientPool.java | 2 +-
.../java/org/apache/helix/util/ZNRecordUtil.java | 5 +-
.../resources/soft-constraint-weight.properties | 26 +
.../test/java/org/apache/helix/MockAccessor.java | 37 +-
.../java/org/apache/helix/TestConfigAccessor.java | 88 +-
.../TestEspressoStorageClusterIdealState.java | 16 +-
.../java/org/apache/helix/TestGroupCommit.java | 4 +-
.../src/test/java/org/apache/helix/TestHelper.java | 99 +-
.../apache/helix/TestHierarchicalDataStore.java | 4 +-
.../org/apache/helix/TestShuffledIdealState.java | 49 +-
.../apache/helix/TestZKRoutingInfoProvider.java | 2 +
.../test/java/org/apache/helix/TestZkBasis.java | 8 +-
.../test/java/org/apache/helix/ZkTestHelper.java | 49 +-
.../java/org/apache/helix/common/ZkTestBase.java | 105 +-
.../common/caches/TestCurrentStateSnapshot.java | 2 +-
.../changedetector/TestResourceChangeDetector.java | 446 ++++
.../rebalancer/TestAutoRebalanceStrategy.java | 2 +-
...stAutoRebalanceStrategyImbalanceAssignment.java | 2 +-
.../rebalancer/TestZeroReplicaAvoidance.java | 2 +-
.../util/TestResourceUsageCalculator.java | 103 +
.../waged/MockAssignmentMetadataStore.java | 60 +
.../waged/TestAssignmentMetadataStore.java | 186 ++
.../rebalancer/waged/TestWagedRebalancer.java | 524 +++++
.../waged/TestWagedRebalancerMetrics.java | 190 ++
.../waged/constraints/MockRebalanceAlgorithm.java | 84 +
.../constraints/TestConstraintBasedAlgorithm.java | 86 +
.../constraints/TestFaultZoneAwareConstraint.java | 79 +
.../TestInstancePartitionsCountConstraint.java | 63 +
.../TestMaxCapacityUsageInstanceConstraint.java | 57 +
.../constraints/TestNodeCapacityConstraint.java | 54 +
.../TestNodeMaxPartitionLimitConstraint.java | 56 +
.../TestPartitionActivateConstraint.java | 64 +
.../TestPartitionMovementConstraint.java | 127 ++
...estResourcePartitionAntiAffinityConstraint.java | 67 +
...TestResourceTopStateAntiAffinityConstraint.java | 82 +
.../TestSamePartitionOnInstanceConstraint.java | 59 +
.../TestSoftConstraintNormalizeFunction.java | 47 +
.../constraints/TestValidGroupTagConstraint.java | 66 +
.../waged/model/AbstractTestClusterModel.java | 203 ++
.../waged/model/ClusterModelTestHelper.java | 65 +
.../rebalancer/waged/model/TestAssignableNode.java | 280 +++
.../waged/model/TestAssignableReplica.java | 167 ++
.../rebalancer/waged/model/TestClusterContext.java | 93 +
.../rebalancer/waged/model/TestClusterModel.java | 101 +
.../waged/model/TestClusterModelProvider.java | 376 ++++
.../waged/model/TestOptimalAssignment.java | 91 +
.../helix/controller/stages/BaseStageTest.java | 2 +-
.../controller/stages/DummyClusterManager.java | 2 +-
.../TestBestPossibleCalcStageCompatibility.java | 2 +-
.../stages/TestCancellationMessageGeneration.java | 97 +
.../helix/controller/stages/TestClusterEvent.java | 44 +-
.../stages/TestCompatibilityCheckStage.java | 2 +-
.../stages/TestCurrentStateComputationStage.java | 2 +-
.../stages/TestMessageThrottleStage.java | 2 +-
.../stages/TestResourceComputationStage.java | 2 +-
.../helix/controller/stages/TestTaskStage.java | 2 +-
.../TestAddStateModelFactoryAfterConnect.java | 2 +-
.../helix/integration/TestBucketizedResource.java | 2 +-
.../integration/TestCarryOverBadCurState.java | 2 +-
.../helix/integration/TestCleanupExternalView.java | 2 +-
.../TestCorrectnessOnConnectivityLoss.java | 2 +-
.../org/apache/helix/integration/TestDisable.java | 2 +-
.../integration/TestDisableCustomCodeRunner.java | 2 +-
.../helix/integration/TestDisableExternalView.java | 2 +-
.../helix/integration/TestDisableResource.java | 2 +-
.../helix/integration/TestDistributedCMMain.java | 2 +-
.../TestDistributedClusterController.java | 2 +-
.../org/apache/helix/integration/TestDriver.java | 6 +-
.../helix/integration/TestEnableCompression.java | 53 +-
.../integration/TestEntropyFreeNodeBounce.java | 4 +-
.../helix/integration/TestExternalViewUpdates.java | 2 +-
.../TestNoThrottleDisabledPartitions.java | 2 +-
.../apache/helix/integration/TestNullReplica.java | 2 +-
.../TestPartitionLevelTransitionConstraint.java | 2 +-
.../integration/TestPersistAssignmentStage.java | 2 +-
.../integration/TestPreferenceListAsQueue.java | 4 +-
.../helix/integration/TestRenamePartition.java | 2 +-
.../helix/integration/TestResetPartitionState.java | 2 +-
.../integration/TestResourceGroupEndtoEnd.java | 5 +-
.../TestResourceWithSamePartitionKey.java | 2 +-
.../helix/integration/TestStandAloneCMMain.java | 83 -
.../integration/TestSyncSessionToController.java | 2 +-
.../integration/TestWeightBasedRebalanceUtil.java | 2 +-
.../integration/TestZkCallbackHandlerLeak.java | 6 +-
.../helix/integration/TestZkConnectionLost.java | 6 +-
.../TestControllerDataProviderSelectiveUpdate.java | 2 +-
.../controller/TestControllerLeadershipChange.java | 165 +-
.../controller/TestControllerLiveLock.java | 2 +-
.../controller/TestWatcherLeakageOnController.java | 102 +
.../manager/ClusterControllerManager.java | 12 +-
.../manager/ClusterDistributedController.java | 5 +-
.../manager/MockParticipantManager.java | 5 +-
.../manager/TestConsecutiveZkSessionExpiry.java | 2 +-
.../integration/manager/TestHelixDataAccessor.java | 2 +-
.../manager/TestParticipantManager.java | 2 +-
.../helix/integration/manager/ZkTestManager.java | 5 +-
.../integration/messaging/TestBatchMessage.java | 4 +-
.../messaging/TestBatchMessageWrapper.java | 2 +-
.../integration/messaging/TestMessageThrottle.java | 4 +-
.../messaging/TestMessageThrottle2.java | 2 +-
.../messaging/TestSchedulerMessage.java | 2 +-
.../messaging/TestSchedulerMessage2.java | 2 +-
.../messaging/TestSchedulerMsgContraints.java | 2 +-
.../messaging/TestSchedulerMsgUsingQueue.java | 2 +-
.../multizk/TestMultiZkHelixJavaApis.java | 484 +++++
.../TestStateTransitionTimeoutWithResource.java | 2 +-
.../TestCrushAutoRebalanceNonRack.java | 8 +-
.../rebalancer/CrushRebalancers/TestNodeSwap.java | 4 +-
.../TestDelayedAutoRebalance.java | 49 +-
...stDelayedAutoRebalanceWithDisabledInstance.java | 32 +-
.../TestDelayedAutoRebalanceWithRackaware.java | 2 +-
.../PartitionMigration/TestExpandCluster.java | 4 +-
.../TestPartitionMigrationBase.java | 26 +-
.../TestWagedRebalancerMigration.java | 111 +
.../rebalancer/TestAutoIsWithEmptyMap.java | 2 +-
.../integration/rebalancer/TestAutoRebalance.java | 6 +-
.../TestAutoRebalancePartitionLimit.java | 6 +-
.../TestCustomizedIdealStateRebalancer.java | 6 +-
.../rebalancer/TestFullAutoNodeTagging.java | 8 +-
.../rebalancer/TestMixedModeAutoRebalance.java | 181 +-
.../rebalancer/TestZeroReplicaAvoidance.java | 62 +-
.../WagedRebalancer/TestDelayedWagedRebalance.java | 89 +
...tDelayedWagedRebalanceWithDisabledInstance.java | 96 +
.../TestDelayedWagedRebalanceWithRackaware.java | 96 +
.../TestMixedModeWagedRebalance.java | 58 +
.../TestWagedExpandCluster.java} | 47 +-
.../WagedRebalancer/TestWagedNodeSwap.java | 294 +++
.../WagedRebalancer/TestWagedRebalance.java | 593 ++++++
.../TestWagedRebalanceFaultZone.java | 372 ++++
.../TestWagedRebalanceTopologyAware.java | 114 ++
.../helix/integration/task/TaskTestUtil.java | 2 +-
.../helix/integration/task/TestTaskStopQueue.java | 2 +-
.../task/TestWorkflowContextWithoutConfig.java | 73 +-
.../helix/integration/task/WorkflowGenerator.java | 27 +-
.../manager/zk/TestAddBuiltInStateModelDef.java | 2 +-
.../helix/manager/zk/TestHandleNewSession.java | 45 +-
.../apache/helix/manager/zk/TestRawZkClient.java | 233 ++-
.../manager/zk/TestWtCacheAsyncOpMultiThread.java | 6 +-
.../manager/zk/TestWtCacheAsyncOpSingleThread.java | 6 +-
.../manager/zk/TestWtCacheSyncOpSingleThread.java | 4 +-
.../org/apache/helix/manager/zk/TestZKUtil.java | 4 +-
.../org/apache/helix/manager/zk/TestZKWatch.java | 153 ++
.../helix/manager/zk/TestZNRecordSerializer.java | 4 +-
.../helix/manager/zk/TestZNRecordSizeLimit.java | 326 ++-
.../zk/TestZNRecordStreamingSerializer.java | 2 +-
.../helix/manager/zk/TestZkBaseDataAccessor.java | 10 +-
.../helix/manager/zk/TestZkBucketDataAccessor.java | 189 ++
.../manager/zk/TestZkCacheAsyncOpSingleThread.java | 10 +-
.../manager/zk/TestZkCacheSyncOpSingleThread.java | 8 +-
.../helix/manager/zk/TestZkClusterManager.java | 2 +-
.../apache/helix/manager/zk/TestZkFlapping.java | 2 +
.../apache/helix/manager/zk/TestZkHelixAdmin.java | 110 +-
.../apache/helix/manager/zk/TestZkReconnect.java | 4 +-
.../helix/manager/zk/client/TestHelixZkClient.java | 29 +-
.../serializer/TestJacksonPayloadSerializer.java | 2 +-
.../messaging/TestDefaultMessagingService.java | 2 +-
.../apache/helix/mock/MockBaseDataAccessor.java | 8 +-
.../java/org/apache/helix/mock/MockHelixAdmin.java | 24 +-
.../java/org/apache/helix/mock/MockManager.java | 2 +-
.../java/org/apache/helix/mock/MockZkClient.java | 4 +-
.../apache/helix/mock/MockZkHelixDataAccessor.java | 2 +-
.../helix/mock/controller/MockController.java | 6 +-
.../participant/StoreAccessDiffNodeTransition.java | 7 +-
.../participant/StoreAccessOneNodeTransition.java | 7 +-
.../helix/mock/spectator/MockSpectatorProcess.java | 9 +-
.../org/apache/helix/model/TestClusterConfig.java | 259 +++
.../org/apache/helix/model/TestConstraint.java | 2 +-
.../org/apache/helix/model/TestInstanceConfig.java | 73 +-
.../org/apache/helix/model/TestResourceConfig.java | 271 +++
.../apache/helix/model/TestStateModelValidity.java | 2 +-
.../helix/model/TestStateTransitionProperty.java | 2 +-
.../helix/monitoring/TestZKPathDataDumpTask.java | 2 +-
.../mbeans/TestClusterStatusMonitor.java | 194 +-
.../monitoring/mbeans/TestInstanceMonitor.java | 75 +
.../monitoring/mbeans/TestResourceMonitor.java | 373 ++--
.../mbeans/TestRoutingTableProviderMonitor.java | 10 +-
.../monitoring/mbeans/TestZkClientMonitor.java | 9 +-
.../helix/participant/MockZKHelixManager.java | 4 +-
.../participant/TestDistControllerStateModel.java | 2 +-
.../TestDistControllerStateModelFactory.java | 2 +-
.../helix/spectator/TestRoutingDataCache.java | 2 +-
.../org/apache/helix/store/TestJsonComparator.java | 2 +-
.../store/zk/TestAutoFallbackPropertyStore.java | 4 +-
.../helix/store/zk/TestZkHelixPropertyStore.java | 8 +-
.../zk/TestZkManagerWithAutoFallbackStore.java | 2 +-
.../helix/task/TestAssignableInstanceManager.java | 2 +-
.../org/apache/helix/tools/TestClusterSetup.java | 2 +-
.../apache/helix/tools/TestClusterVerifier.java | 76 +-
.../org/apache/helix/tools/TestHelixAdminCli.java | 2 +-
.../java/org/apache/helix/tools/TestZkCopy.java | 2 +-
.../apache/helix/util/TestPropertyKeyGetPath.java | 2 +-
.../org/apache/helix/util/TestZKClientPool.java | 8 +-
...eUsageCalculator.MeasureBaselineDivergence.json | 37 +
...chExternalViewVerifier.ComputeIdealMapping.json | 14 +-
helix-rest/pom.xml | 9 +-
.../rest/common/HelixDataAccessorWrapper.java | 2 +-
.../helix/rest/common/HelixRestNamespace.java | 38 +-
.../apache/helix/rest/common/HttpConstants.java | 15 +-
.../org/apache/helix/rest/common/ServletType.java | 7 +-
.../rest/metadatastore/MetadataStoreDirectory.java | 137 ++
.../metadatastore/ZkMetadataStoreDirectory.java | 369 ++++
.../accessor/MetadataStoreRoutingDataReader.java | 50 +
.../accessor/MetadataStoreRoutingDataWriter.java | 74 +
.../accessor/ZkRoutingDataReader.java | 160 ++
.../accessor/ZkRoutingDataWriter.java | 428 ++++
.../concurrency/ZkDistributedLeaderElection.java | 141 ++
.../datamodel/MetadataStoreShardingKey.java | 61 +
.../MetadataStoreShardingKeysByRealm.java | 56 +
.../apache/helix/rest/server/HelixRestMain.java | 8 +-
.../apache/helix/rest/server/HelixRestServer.java | 5 +-
.../apache/helix/rest/server/ServerContext.java | 309 ++-
.../rest/server/json/instance/InstanceInfo.java | 2 +-
.../rest/server/resources/AbstractResource.java | 10 +-
.../resources/helix/AbstractHelixResource.java | 14 +-
.../server/resources/helix/ClusterAccessor.java | 355 ++--
.../server/resources/helix/InstancesAccessor.java | 88 +-
.../rest/server/resources/helix/JobAccessor.java | 4 +-
.../resources/helix/PerInstanceAccessor.java | 58 +-
.../resources/helix/PropertyStoreAccessor.java | 6 +-
.../server/resources/helix/ResourceAccessor.java | 160 +-
.../rest/server/resources/helix/TaskAccessor.java | 2 +-
.../server/resources/helix/WorkflowAccessor.java | 4 +-
.../MetadataStoreDirectoryAccessor.java | 392 ++++
.../resources/zookeeper/ZooKeeperAccessor.java | 25 +-
.../rest/server/service/InstanceServiceImpl.java | 8 +
.../rest/common/TestHelixDataAccessorWrapper.java | 2 +-
.../TestZkMetadataStoreDirectory.java | 344 ++++
.../accessor/TestZkRoutingDataReader.java | 136 ++
.../accessor/TestZkRoutingDataWriter.java | 223 ++
.../integration/TestRoutingDataUpdate.java | 176 ++
.../helix/rest/server/AbstractTestClass.java | 192 +-
.../MetadataStoreDirectoryAccessorTestBase.java | 149 ++
.../helix/rest/server/TestClusterAccessor.java | 81 +-
.../helix/rest/server/TestInstancesAccessor.java | 77 +
.../rest/server/TestMSDAccessorLeaderElection.java | 261 +++
.../server/TestMetadataStoreDirectoryAccessor.java | 516 +++++
.../helix/rest/server/TestPerInstanceAccessor.java | 68 +-
.../rest/server/TestPropertyStoreAccessor.java | 6 +-
.../helix/rest/server/TestResourceAccessor.java | 119 +-
.../helix/rest/server/TestZooKeeperAccessor.java | 4 +-
.../mock/MockMetadataStoreDirectoryAccessor.java | 124 ++
.../rest/server/util/JerseyUriRequestBuilder.java | 3 +-
.../LICENSE | 0
.../NOTICE | 0
...adata-store-directory-common-0.9.2-SNAPSHOT.ivy | 42 +-
.../pom.xml | 95 +-
.../src/assemble/assembly.xml | 60 +
.../src/main/config/log4j.properties | 0
.../msdcommon/callback/RoutingDataListener.java | 11 +-
.../constant/MetadataStoreRoutingConstants.java | 95 +
.../datamodel/MetadataStoreRoutingData.java | 78 +
.../helix/msdcommon/datamodel/TrieRoutingData.java | 308 +++
.../exception/InvalidRoutingDataException.java | 18 +-
.../mock/MockMetadataStoreDirectoryServer.java | 157 ++
.../helix/msdcommon/util/ZkValidationUtil.java | 33 +-
.../src/test/conf/testng.xml | 27 +
.../helix/msdcommon/constant/TestConstants.java | 23 +-
.../msdcommon/datamodel/TestTrieRoutingData.java | 338 +++
.../mock/TestMockMetadataStoreDirectoryServer.java | 115 ++
.../src/test/resources/log4j.properties | 0
metrics-common/LICENSE | 270 +++
metrics-common/NOTICE | 37 +
.../metrics-common-0.9.2-SNAPSHOT.ivy | 35 +-
{helix-admin-webapp => metrics-common}/pom.xml | 74 +-
metrics-common/src/assemble/assembly.xml | 60 +
.../helix/monitoring/SensorNameProvider.java | 0
.../helix/monitoring/mbeans/MBeanRegistrar.java | 1 +
.../monitoring/mbeans/MonitorDomainNames.java | 0
.../mbeans/dynamicMBeans/DynamicMBeanProvider.java | 41 +-
.../mbeans/dynamicMBeans/DynamicMetric.java | 5 +-
.../dynamicMBeans/HistogramDynamicMetric.java | 1 +
.../mbeans/dynamicMBeans/SimpleDynamicMetric.java | 0
.../mbeans/exception/MetricException.java | 18 +-
metrics-common/src/test/conf/testng.xml | 27 +
.../src/test/resources/log4j.properties | 0
pom.xml | 10 +
.../apache/helix/lockmanager/LockManagerDemo.java | 7 +-
.../apache/helix/recipes/rabbitmq/Consumer.java | 2 +-
.../recipes/rabbitmq/SetupConsumerCluster.java | 2 +-
recipes/rsync-replicated-file-system/pom.xml | 5 -
.../java/org/apache/helix/filestore/FileStore.java | 2 +-
.../helix/filestore/FileStoreStateModel.java | 4 +-
.../apache/helix/filestore/IntegrationTest.java | 8 +-
.../org/apache/helix/filestore/Replicator.java | 2 +-
.../org/apache/helix/filestore/SetupCluster.java | 2 +-
.../helix/servicediscovery/ServiceDiscovery.java | 2 +-
.../apache/helix/taskexecution/TaskCluster.java | 2 +-
.../helix/taskexecution/TaskExecutionDemo.java | 7 +-
.../org/apache/helix/taskexecution/Worker.java | 2 +-
zookeeper-api/LICENSE | 270 +++
zookeeper-api/NOTICE | 37 +
{helix-admin-webapp => zookeeper-api}/pom.xml | 91 +-
zookeeper-api/src/assemble/assembly.xml | 60 +
.../src/main/config/log4j.properties | 0
.../helix/zookeeper/api/client/HelixZkClient.java | 157 ++
.../zookeeper/api/client/RealmAwareZkClient.java | 606 ++++++
.../helix/zookeeper/api/client/ZkClientType.java | 32 +-
.../api/factory/RealmAwareZkClientFactory.java | 56 +
.../zookeeper/constant/ZkSystemPropertyKeys.java | 53 +
.../helix/zookeeper/datamodel}/ZNRecord.java | 56 +-
.../zookeeper/datamodel}/ZNRecordAssembler.java | 3 +-
.../zookeeper/datamodel}/ZNRecordBucketizer.java | 3 +-
.../helix/zookeeper/datamodel}/ZNRecordDelta.java | 2 +-
.../zookeeper/datamodel}/ZNRecordUpdater.java | 5 +-
.../serializer/JacksonPayloadSerializer.java | 8 +-
.../datamodel}/serializer/PayloadSerializer.java | 2 +-
.../serializer/ZNRecordJacksonSerializer.java | 68 +
.../datamodel/serializer}/ZNRecordSerializer.java | 52 +-
.../serializer}/ZNRecordStreamingSerializer.java | 50 +-
.../zookeeper/exception/ZkClientException.java | 14 +-
.../zookeeper/impl/client/DedicatedZkClient.java | 504 +++++
.../zookeeper/impl/client/FederatedZkClient.java | 574 ++++++
.../zookeeper/impl/client/SharedZkClient.java | 534 +++++
.../helix/zookeeper/impl/client}/ZkClient.java | 59 +-
.../impl/factory/DedicatedZkClientFactory.java | 69 +
.../impl/factory/HelixZkClientFactory.java | 71 +
.../impl/factory/SharedZkClientFactory.java | 209 ++
.../impl/factory}/ZkConnectionManager.java | 55 +-
.../helix/zookeeper}/util/GZipCompressionUtil.java | 5 +-
.../zookeeper/util/HttpRoutingDataReader.java | 197 ++
.../apache/helix/zookeeper/util/ZNRecordUtil.java | 65 +
.../helix/zookeeper/zkclient/DataUpdater.java | 34 +
.../helix/zookeeper/zkclient/ExceptionUtil.java | 52 +
.../zookeeper/zkclient/IDefaultNameSpace.java | 27 +
.../helix/zookeeper/zkclient/IZkChildListener.java | 41 +
.../helix/zookeeper/zkclient/IZkConnection.java | 60 +
.../helix/zookeeper/zkclient/IZkDataListener.java | 30 +
.../zookeeper/zkclient}/IZkStateListener.java | 2 +-
.../helix/zookeeper/zkclient/NetworkUtil.java | 122 ++
.../apache/helix/zookeeper/zkclient}/ZkClient.java | 244 ++-
.../helix/zookeeper/zkclient}/ZkConnection.java | 6 +-
.../helix/zookeeper/zkclient}/ZkEventThread.java | 5 +-
.../apache/helix/zookeeper/zkclient/ZkLock.java | 56 +
.../apache/helix/zookeeper/zkclient/ZkServer.java | 175 ++
.../zookeeper/zkclient/annotation}/PreFetch.java | 2 +-
.../zkclient/callback}/ZkAsyncCallbacks.java | 11 +-
.../zkclient/deprecated/IZkStateListener.java | 53 +
.../zkclient/exception/ZkBadVersionException.java | 39 +
.../zookeeper/zkclient/exception/ZkException.java | 71 +
.../zkclient/exception/ZkInterruptedException.java | 26 +
.../zkclient/exception/ZkMarshallingError.java | 37 +
.../zkclient/exception/ZkNoNodeException.java | 39 +
.../zkclient/exception/ZkNodeExistsException.java | 39 +
.../exception/ZkSessionMismatchedException.java | 22 +-
.../zkclient/exception/ZkTimeoutException.java | 37 +
.../zkclient/metric}/ZkClientMonitor.java | 15 +-
.../zkclient/metric}/ZkClientPathMonitor.java | 4 +-
.../zkclient/serialize}/BasicZkSerializer.java | 4 +-
.../serialize/BytesPushThroughSerializer.java | 36 +
.../zkclient/serialize}/PathBasedZkSerializer.java | 5 +-
.../zkclient/serialize/SerializableSerializer.java | 55 +
.../serialize/TcclAwareObjectIputStream.java | 82 +
.../zookeeper/zkclient/serialize/ZkSerializer.java | 33 +
.../zkclient}/util/ExponentialBackoffStrategy.java | 22 +-
zookeeper-api/src/test/conf/testng.xml | 27 +
.../helix/zookeeper/constant/TestConstants.java | 45 +
.../TestZNRecordSerializeWriteSizeLimit.java | 200 ++
.../apache/helix/zookeeper/impl/ZkTestBase.java | 148 ++
.../client/RealmAwareZkClientFactoryTestBase.java | 180 ++
.../impl/client/RealmAwareZkClientTestBase.java | 66 +
.../impl/client/TestDedicatedZkClient.java | 27 +-
.../impl/client/TestFederatedZkClient.java | 283 +++
.../zookeeper/impl/client/TestSharedZkClient.java | 69 +
.../zookeeper/util/TestHttpRoutingDataReader.java | 120 ++
.../src/test/resources/log4j.properties | 0
.../zookeeper-api-0.9.2-SNAPSHOT.ivy | 39 +-
650 files changed, 32526 insertions(+), 7975 deletions(-)
create mode 100644 helix-common/LICENSE
create mode 100644 helix-common/NOTICE
copy helix-core/helix-core-0.9.2-SNAPSHOT.ivy => helix-common/helix-common-0.9.2-SNAPSHOT.ivy (56%)
copy {helix-admin-webapp => helix-common}/pom.xml (58%)
create mode 100644 helix-common/src/assemble/assembly.xml
copy {helix-core => helix-common}/src/main/java/org/apache/helix/HelixException.java (100%)
rename {helix-core => helix-common}/src/main/java/org/apache/helix/SystemPropertyKeys.java (56%)
copy helix-core/src/main/java/org/apache/helix/HelixException.java => helix-common/src/main/java/org/apache/helix/ZNRecord.java (52%)
copy helix-core/src/main/java/org/apache/helix/HelixTimerTask.java => helix-common/src/main/java/org/apache/helix/ZNRecordDelta.java (78%)
copy helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MonitorDomainNames.java => helix-common/src/main/java/org/apache/helix/manager/zk/serializer/JacksonPayloadSerializer.java (71%)
copy helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MonitorDomainNames.java => helix-common/src/main/java/org/apache/helix/manager/zk/serializer/PayloadSerializer.java (71%)
create mode 100644 helix-common/src/test/conf/testng.xml
copy {helix-rest => helix-common}/src/test/resources/log4j.properties (100%)
copy helix-core/src/main/java/org/apache/helix/{manager/zk/PathBasedZkSerializer.java => BucketDataAccessor.java} (50%)
copy helix-core/src/main/java/org/apache/helix/{HelixException.java => HelixRebalanceException.java} (50%)
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/changedetector/ChangeDetector.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/changedetector/ResourceChangeDetector.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/changedetector/ResourceChangeSnapshot.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/StatefulRebalancer.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/util/DelayedRebalanceUtil.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/util/WagedValidationUtil.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/AssignmentMetadataStore.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/RebalanceAlgorithm.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/WagedRebalancer.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/ConstraintBasedAlgorithm.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/ConstraintBasedAlgorithmFactory.java
copy helix-core/src/main/java/org/apache/helix/{manager/zk/ByteArraySerializer.java => controller/rebalancer/waged/constraints/FaultZoneAwareConstraint.java} (51%)
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/HardConstraint.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/InstancePartitionsCountConstraint.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/MaxCapacityUsageInstanceConstraint.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/NodeCapacityConstraint.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/NodeMaxPartitionLimitConstraint.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/PartitionMovementConstraint.java
copy helix-core/src/main/java/org/apache/helix/{manager/zk/ByteArraySerializer.java => controller/rebalancer/waged/constraints/ReplicaActivateConstraint.java} (52%)
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/ResourcePartitionAntiAffinityConstraint.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/ResourceTopStateAntiAffinityConstraint.java
copy helix-core/src/main/java/org/apache/helix/{store/ZNRecordJsonSerializer.java => controller/rebalancer/waged/constraints/SamePartitionOnInstanceConstraint.java} (54%)
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/SoftConstraint.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/constraints/UsageSoftConstraint.java
copy helix-core/src/main/java/org/apache/helix/{manager/zk/ByteArraySerializer.java => controller/rebalancer/waged/constraints/ValidGroupTagConstraint.java} (54%)
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/AssignableNode.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/AssignableReplica.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/ClusterContext.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/ClusterModel.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/ClusterModelProvider.java
create mode 100644 helix-core/src/main/java/org/apache/helix/controller/rebalancer/waged/model/OptimalAssignment.java
create mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/GenericBaseDataAccessorBuilder.java
create mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/GenericZkHelixApiBuilder.java
copy helix-core/src/main/java/org/apache/helix/manager/zk/{ByteArraySerializer.java => ZNRecordJacksonSerializer.java} (68%)
create mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/ZkBucketDataAccessor.java
delete mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/ZkSessionMismatchedException.java
delete mode 100644 helix-core/src/main/java/org/apache/helix/manager/zk/client/HelixZkClientFactory.java
delete mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/mbeans/InstanceMonitorMBean.java
create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/MetricCollector.java
create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/WagedRebalancerMetricCollector.java
create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/implementation/BaselineDivergenceGauge.java
copy helix-core/src/main/java/org/apache/helix/{HelixTimerTask.java => monitoring/metrics/implementation/RebalanceCounter.java} (61%)
copy helix-core/src/main/java/org/apache/helix/{HelixTimerTask.java => monitoring/metrics/implementation/RebalanceFailureCount.java} (69%)
create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/implementation/RebalanceLatencyGauge.java
create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/model/CountMetric.java
create mode 100644 helix-core/src/main/java/org/apache/helix/monitoring/metrics/model/LatencyMetric.java
copy helix-core/src/main/java/org/apache/helix/{HelixTimerTask.java => monitoring/metrics/model/Metric.java} (57%)
copy helix-core/src/main/java/org/apache/helix/monitoring/{mbeans/dynamicMBeans/SimpleDynamicMetric.java => metrics/model/RatioMetric.java} (52%)
create mode 100644 helix-core/src/main/resources/soft-constraint-weight.properties
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/changedetector/TestResourceChangeDetector.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/util/TestResourceUsageCalculator.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/MockAssignmentMetadataStore.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/TestAssignmentMetadataStore.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/TestWagedRebalancer.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/TestWagedRebalancerMetrics.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/MockRebalanceAlgorithm.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestConstraintBasedAlgorithm.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestFaultZoneAwareConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestInstancePartitionsCountConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestMaxCapacityUsageInstanceConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestNodeCapacityConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestNodeMaxPartitionLimitConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestPartitionActivateConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestPartitionMovementConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestResourcePartitionAntiAffinityConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestResourceTopStateAntiAffinityConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestSamePartitionOnInstanceConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestSoftConstraintNormalizeFunction.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/constraints/TestValidGroupTagConstraint.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/AbstractTestClusterModel.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/ClusterModelTestHelper.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestAssignableNode.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestAssignableReplica.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestClusterContext.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestClusterModel.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestClusterModelProvider.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/rebalancer/waged/model/TestOptimalAssignment.java
create mode 100644 helix-core/src/test/java/org/apache/helix/controller/stages/TestCancellationMessageGeneration.java
delete mode 100644 helix-core/src/test/java/org/apache/helix/integration/TestStandAloneCMMain.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/controller/TestWatcherLeakageOnController.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/multizk/TestMultiZkHelixJavaApis.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/PartitionMigration/TestWagedRebalancerMigration.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestDelayedWagedRebalance.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestDelayedWagedRebalanceWithDisabledInstance.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestDelayedWagedRebalanceWithRackaware.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestMixedModeWagedRebalance.java
copy helix-core/src/test/java/org/apache/helix/integration/rebalancer/{PartitionMigration/TestExpandCluster.java => WagedRebalancer/TestWagedExpandCluster.java} (74%)
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestWagedNodeSwap.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestWagedRebalance.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestWagedRebalanceFaultZone.java
create mode 100644 helix-core/src/test/java/org/apache/helix/integration/rebalancer/WagedRebalancer/TestWagedRebalanceTopologyAware.java
create mode 100644 helix-core/src/test/java/org/apache/helix/manager/zk/TestZKWatch.java
create mode 100644 helix-core/src/test/java/org/apache/helix/manager/zk/TestZkBucketDataAccessor.java
create mode 100644 helix-core/src/test/java/org/apache/helix/model/TestClusterConfig.java
create mode 100644 helix-core/src/test/java/org/apache/helix/model/TestResourceConfig.java
create mode 100644 helix-core/src/test/java/org/apache/helix/monitoring/mbeans/TestInstanceMonitor.java
create mode 100644 helix-core/src/test/resources/TestResourceUsageCalculator.MeasureBaselineDivergence.json
copy helix-core/src/main/java/org/apache/helix/monitoring/SensorNameProvider.java => helix-rest/src/main/java/org/apache/helix/rest/common/HttpConstants.java (75%)
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/MetadataStoreDirectory.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/ZkMetadataStoreDirectory.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/accessor/MetadataStoreRoutingDataReader.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/accessor/MetadataStoreRoutingDataWriter.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/accessor/ZkRoutingDataReader.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/accessor/ZkRoutingDataWriter.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/concurrency/ZkDistributedLeaderElection.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/datamodel/MetadataStoreShardingKey.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/metadatastore/datamodel/MetadataStoreShardingKeysByRealm.java
create mode 100644 helix-rest/src/main/java/org/apache/helix/rest/server/resources/metadatastore/MetadataStoreDirectoryAccessor.java
create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/metadatastore/TestZkMetadataStoreDirectory.java
create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/metadatastore/accessor/TestZkRoutingDataReader.java
create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/metadatastore/accessor/TestZkRoutingDataWriter.java
create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/metadatastore/integration/TestRoutingDataUpdate.java
create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/server/MetadataStoreDirectoryAccessorTestBase.java
create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/server/TestMSDAccessorLeaderElection.java
create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/server/TestMetadataStoreDirectoryAccessor.java
create mode 100644 helix-rest/src/test/java/org/apache/helix/rest/server/mock/MockMetadataStoreDirectoryAccessor.java
copy {helix-rest => metadata-store-directory-common}/LICENSE (100%)
copy {helix-rest => metadata-store-directory-common}/NOTICE (100%)
copy helix-core/helix-core-0.9.2-SNAPSHOT.ivy => metadata-store-directory-common/metadata-store-directory-common-0.9.2-SNAPSHOT.ivy (55%)
copy {helix-admin-webapp => metadata-store-directory-common}/pom.xml (55%)
create mode 100644 metadata-store-directory-common/src/assemble/assembly.xml
copy {helix-rest => metadata-store-directory-common}/src/main/config/log4j.properties (100%)
copy helix-core/src/main/java/org/apache/helix/monitoring/SensorNameProvider.java => metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/callback/RoutingDataListener.java (75%)
create mode 100644 metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/constant/MetadataStoreRoutingConstants.java
create mode 100644 metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/datamodel/MetadataStoreRoutingData.java
create mode 100644 metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/datamodel/TrieRoutingData.java
copy helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MonitorDomainNames.java => metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/exception/InvalidRoutingDataException.java (67%)
create mode 100644 metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/mock/MockMetadataStoreDirectoryServer.java
copy helix-core/src/main/java/org/apache/helix/HelixTimerTask.java => metadata-store-directory-common/src/main/java/org/apache/helix/msdcommon/util/ZkValidationUtil.java (60%)
create mode 100644 metadata-store-directory-common/src/test/conf/testng.xml
copy helix-core/src/main/java/org/apache/helix/healthcheck/ParticipantHealthReportCollector.java => metadata-store-directory-common/src/test/java/org/apache/helix/msdcommon/constant/TestConstants.java (59%)
create mode 100644 metadata-store-directory-common/src/test/java/org/apache/helix/msdcommon/datamodel/TestTrieRoutingData.java
create mode 100644 metadata-store-directory-common/src/test/java/org/apache/helix/msdcommon/mock/TestMockMetadataStoreDirectoryServer.java
copy {helix-rest => metadata-store-directory-common}/src/test/resources/log4j.properties (100%)
create mode 100644 metrics-common/LICENSE
create mode 100644 metrics-common/NOTICE
copy helix-core/helix-core-0.9.2-SNAPSHOT.ivy => metrics-common/metrics-common-0.9.2-SNAPSHOT.ivy (53%)
copy {helix-admin-webapp => metrics-common}/pom.xml (55%)
create mode 100644 metrics-common/src/assemble/assembly.xml
rename {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/SensorNameProvider.java (100%)
rename {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/MBeanRegistrar.java (99%)
copy {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/MonitorDomainNames.java (100%)
copy {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMBeanProvider.java (87%)
rename {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMetric.java (95%)
rename {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/HistogramDynamicMetric.java (99%)
copy {helix-core => metrics-common}/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/SimpleDynamicMetric.java (100%)
copy helix-core/src/main/java/org/apache/helix/api/listeners/PreFetch.java => metrics-common/src/main/java/org/apache/helix/monitoring/mbeans/exception/MetricException.java (70%)
create mode 100644 metrics-common/src/test/conf/testng.xml
copy {helix-rest => metrics-common}/src/test/resources/log4j.properties (100%)
create mode 100644 zookeeper-api/LICENSE
create mode 100644 zookeeper-api/NOTICE
copy {helix-admin-webapp => zookeeper-api}/pom.xml (64%)
create mode 100644 zookeeper-api/src/assemble/assembly.xml
copy {helix-rest => zookeeper-api}/src/main/config/log4j.properties (100%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/client/HelixZkClient.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/client/RealmAwareZkClient.java
copy helix-core/src/main/java/org/apache/helix/manager/zk/PathBasedZkSerializer.java => zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/client/ZkClientType.java (54%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/factory/RealmAwareZkClientFactory.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/constant/ZkSystemPropertyKeys.java
rename {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecord.java (91%)
copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecordAssembler.java (96%)
copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecordBucketizer.java (98%)
rename {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecordDelta.java (97%)
copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/ZNRecordUpdater.java (92%)
rename {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/serializer/JacksonPayloadSerializer.java (94%)
rename {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel}/serializer/PayloadSerializer.java (96%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel/serializer/ZNRecordJacksonSerializer.java
copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel/serializer}/ZNRecordSerializer.java (69%)
copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/datamodel/serializer}/ZNRecordStreamingSerializer.java (86%)
copy helix-core/src/main/java/org/apache/helix/HelixException.java => zookeeper-api/src/main/java/org/apache/helix/zookeeper/exception/ZkClientException.java (69%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/client/DedicatedZkClient.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/client/FederatedZkClient.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/client/SharedZkClient.java
copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/client}/ZkClient.java (83%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/factory/DedicatedZkClientFactory.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/factory/HelixZkClientFactory.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/factory/SharedZkClientFactory.java
copy {helix-core/src/main/java/org/apache/helix/manager/zk/client => zookeeper-api/src/main/java/org/apache/helix/zookeeper/impl/factory}/ZkConnectionManager.java (62%)
copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper}/util/GZipCompressionUtil.java (97%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/util/HttpRoutingDataReader.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/util/ZNRecordUtil.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/DataUpdater.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ExceptionUtil.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/IDefaultNameSpace.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/IZkChildListener.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/IZkConnection.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/IZkDataListener.java
copy {helix-core/src/main/java/org/apache/helix/manager/zk/zookeeper => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/IZkStateListener.java (98%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/NetworkUtil.java
copy {helix-core/src/main/java/org/apache/helix/manager/zk/zookeeper => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/ZkClient.java (90%)
copy {helix-core/src/main/java/org/apache/helix/manager/zk/zookeeper => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/ZkConnection.java (97%)
rename {helix-core/src/main/java/org/apache/helix/manager/zk/zookeeper => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/ZkEventThread.java (97%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkLock.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
copy {helix-core/src/main/java/org/apache/helix/api/listeners => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/annotation}/PreFetch.java (94%)
copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/callback}/ZkAsyncCallbacks.java (96%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/deprecated/IZkStateListener.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkBadVersionException.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkException.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkInterruptedException.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkMarshallingError.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkNoNodeException.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkNodeExistsException.java
copy helix-core/src/main/java/org/apache/helix/task/beans/WorkflowBean.java => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkSessionMismatchedException.java (68%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/exception/ZkTimeoutException.java
copy {helix-core/src/main/java/org/apache/helix/monitoring/mbeans => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric}/ZkClientMonitor.java (94%)
copy {helix-core/src/main/java/org/apache/helix/monitoring/mbeans => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric}/ZkClientPathMonitor.java (98%)
copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize}/BasicZkSerializer.java (93%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize/BytesPushThroughSerializer.java
copy {helix-core/src/main/java/org/apache/helix/manager/zk => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize}/PathBasedZkSerializer.java (91%)
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize/SerializableSerializer.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize/TcclAwareObjectIputStream.java
create mode 100644 zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/serialize/ZkSerializer.java
copy {helix-core/src/main/java/org/apache/helix => zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient}/util/ExponentialBackoffStrategy.java (54%)
create mode 100644 zookeeper-api/src/test/conf/testng.xml
create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/constant/TestConstants.java
create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/datamodel/serializer/TestZNRecordSerializeWriteSizeLimit.java
create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/ZkTestBase.java
create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/RealmAwareZkClientFactoryTestBase.java
create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/RealmAwareZkClientTestBase.java
rename helix-core/src/main/java/org/apache/helix/HelixException.java => zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestDedicatedZkClient.java (54%)
create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestFederatedZkClient.java
create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestSharedZkClient.java
create mode 100644 zookeeper-api/src/test/java/org/apache/helix/zookeeper/util/TestHttpRoutingDataReader.java
copy {helix-rest => zookeeper-api}/src/test/resources/log4j.properties (100%)
copy helix-core/helix-core-0.9.2-SNAPSHOT.ivy => zookeeper-api/zookeeper-api-0.9.2-SNAPSHOT.ivy (53%)