This is an automated email from the ASF dual-hosted git repository.
jxue pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/helix.git
from 2546140be Bump com.fasterxml.jackson.core:jackson-core in /helix-core
(#3051)
new 3486f2439 Set up helix-gateway folder, add PoC code and add protobuf
(#2826)
new b151c324e Add protobuff definition and an empty grpc service (#2834)
new 301987286 Build HelixGateway integration test base (#2842)
new 642ee17e6 Refactor and remove mock classes (#2841)
new 556129fe4 Gateway service - service structure dummy class (#2840)
new 9a628f705 Gateway util for per key lock and per key blocking queue
executor(#2847)
new 229d28625 Implement GatewayServiceManager (#2844)
new 73e6258dd Add license to gateway service (#2851)
new ca2b2c96a Implement Helix ST handling logic and
HelixGatewayParticipant (#2845)
new 3a82b4eac API to close grpc client stream connection from server side
(#2856)
new 26a2b8c5e Implement helix manager disconnect and client disconnect
handling for HelixGatewayParticipant.(#2868)
new a33a9767d Interfaces of gateway service (#2871)
new fe3e0726e Refine gateway service interface (#2875)
new 5f5d1cf46 Create Gateway service channel factory (#2883)
new e45d767dd Gateway - User report their shards' current state instead of
state transition message (#2892)
new 6ba9a4c57 Add helix-gateway to bump-up.sh and bump-snapshot.sh (#2899)
new f3ddb86f4 Gateway - Add GatewayCurrentStateCache for gateway service
(#2895)
new 8b9a284fc Gateway - Implementing poll-mode channel (#2900)
new fd59dde0e Create condition based rebalancer (#2846)
new f5ea2d5ea Add missing license for rebalance condition files (#2853)
new be12425b7 Helix stickiness rebalancer (#2878)
new 0d7b0b08e Move existing assignments usage calculation to pre-process
stage (#2888)
new 5d6782481 Add test to ensure no partition movement when nodes restart
(#2896)
new 2c8960488 Add null check for getClusterConfig()
new 673c71d06 Switch to compatible grpc version (#2904)
new b5a5c066d Use grpc.version for io.grpc version (#2905)
new 463439561 Expose setting gateway service channel to allow external
managment of the lifecycle of the channel. (#2913)
new 9180abdf0 Gateway - gateway participant update target state in cache
(#2910)
new 0fd6d0e4e Include java stubs in jdk11 jar. (#2920)
new a9cd47d67 Add helix-gateway stubs to exported packages.(#2923)
new 56e68b16d Add an end to end test for helix gateway (#2922)
new a0e822d27 Synchronize calls to StreamObserver methods (#2934)
new 17aa5da5f Fix gateway e2e test - set timestamp in second instead of ms
(#2942)
new 0ce6d45ce Add getter for all target state - gateway service (#2943)
new a52c9a6a6 Add log and refine code style for Gateway service (#2950)
new 84cf7c214 Make StickyRebalanceStrategy topology aware (#2944)
new 03049ed3a Fix version in pom
The 37 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/workflows/Helix-PR-CI.yml | 2 +-
bump-snapshot.sh | 1 +
bump-up.sh | 2 +-
.../helix/controller/common/CapacityNode.java | 118 +++++-
.../ResourceControllerDataProvider.java | 85 +++-
.../rebalancer/ConditionBasedRebalancer.java | 215 ++++++++++
.../condition/ConfigChangeBasedCondition.java | 11 +-
.../RebalanceCondition.java} | 23 +-
.../condition/RebalanceConditionsBuilder.java} | 27 +-
.../condition/TopologyChangeBasedCondition.java | 11 +-
.../strategy/GreedyRebalanceStrategy.java | 103 -----
.../strategy/StickyRebalanceStrategy.java | 199 +++++++++
.../stages/CurrentStateComputationStage.java | 9 +
.../helix/manager/zk/ParticipantManager.java | 2 +-
.../java/org/apache/helix/model/ClusterConfig.java | 2 +-
.../java/org/apache/helix/common/ZkTestBase.java | 10 +-
.../rebalancer/TestGreedyRebalanceStrategy.java | 85 ----
.../rebalancer/TestStickyRebalanceStrategy.java | 211 ++++++++++
.../rebalancer/TestStickyRebalanceStrategy.java | 444 +++++++++++++++++++++
...alanceWithGlobalPerInstancePartitionLimit.java} | 25 +-
{helix-common => helix-gateway}/LICENSE | 0
{helix-common => helix-gateway}/NOTICE | 0
.../helix-gateway-1.4.2-SNAPSHOT.ivy | 10 +-
{zookeeper-api => helix-gateway}/pom.xml | 149 ++++---
.../src/assemble/assembly.xml | 6 +-
.../org/apache/helix/gateway/HelixGatewayMain.java | 52 +--
.../api/constant/GatewayServiceConfigConstant.java | 15 +-
.../api/constant/GatewayServiceEventType.java | 13 +-
.../constant/GatewayServiceManagerConstant.java | 11 +-
.../api/service/HelixGatewayServiceChannel.java | 84 ++++
.../channel/GatewayServiceChannelConfig.java | 299 ++++++++++++++
.../channel/HelixGatewayServiceChannelFactory.java | 42 ++
.../channel/HelixGatewayServiceGrpcService.java | 239 +++++++++++
.../HelixGatewayServicePollModeChannel.java | 231 +++++++++++
.../participant/HelixGatewayParticipant.java | 259 ++++++++++++
.../helix/gateway/service/GatewayServiceEvent.java | 126 ++++++
.../gateway/service/GatewayServiceManager.java | 269 +++++++++++++
.../HelixGatewayMultiTopStateStateModel.java | 49 +--
...HelixGatewayMultiTopStateStateModelFactory.java | 20 +-
.../gateway/util/GatewayCurrentStateCache.java | 208 ++++++++++
.../helix/gateway/util/PerKeyBlockingExecutor.java | 97 +++++
.../helix/gateway/util/PerKeyLockRegistry.java | 70 ++++
.../apache/helix/gateway/util/PollChannelUtil.java | 147 +++++++
.../util/StateTransitionMessageTranslateUtil.java | 176 ++++++++
.../src/main/proto/HelixGatewayService.proto | 79 ++++
.../src/test/conf/testng.xml | 2 +-
.../helix/gateway/TestPerKeyBlockingExecutor.java | 44 ++
.../helix/gateway/TestPerKeyLockRegistry.java | 55 +++
.../helix/gateway/base/HelixGatewayTestBase.java | 140 +++++++
.../helix/gateway/base/ZookeeperTestBase.java | 76 +---
.../base}/manager/ClusterControllerManager.java | 2 +-
.../gateway/base}/manager/ClusterManager.java | 18 +-
.../base}/manager/MockParticipantManager.java | 46 +--
.../base/statemodel/MockOFModelFactory.java | 14 +-
.../gateway/base/statemodel/MockOFStateModel.java | 10 +-
.../gateway/base/statemodel}/MockTransition.java | 2 +-
.../helix/gateway/base/util}/TestHelper.java | 219 +++-------
.../channel/TestGatewayServiceChannelConfig.java | 88 ++++
.../TestHelixGatewayServicePollModeChannel.java | 90 +++++
.../integration/TestFilePullChannelE2E.java | 258 ++++++++++++
.../participant/TestHelixGatewayParticipant.java | 444 +++++++++++++++++++++
.../service/TestGatewayServiceConnection.java | 158 ++++++++
.../gateway/service/TestGatewayServiceManager.java | 79 ++++
.../gateway/util/TestGatewayCurrentStateCache.java | 78 ++++
.../TestStateTransitionMessageTranslateUtil.java | 69 ++++
.../src/test/resources/log4j2.properties | 0
pom.xml | 1 +
67 files changed, 5440 insertions(+), 689 deletions(-)
create mode 100644
helix-core/src/main/java/org/apache/helix/controller/rebalancer/ConditionBasedRebalancer.java
copy
recipes/distributed-lock-manager/src/main/java/org/apache/helix/lockmanager/LockFactory.java
=>
helix-core/src/main/java/org/apache/helix/controller/rebalancer/condition/ConfigChangeBasedCondition.java
(69%)
copy
helix-core/src/main/java/org/apache/helix/controller/rebalancer/{strategy/CrushEdRebalanceStrategy.java
=> condition/RebalanceCondition.java} (53%)
copy
helix-core/src/main/java/org/apache/helix/{messaging/handling/MultiTypeMessageHandlerFactory.java
=> controller/rebalancer/condition/RebalanceConditionsBuilder.java} (58%)
copy
recipes/distributed-lock-manager/src/main/java/org/apache/helix/lockmanager/LockFactory.java
=>
helix-core/src/main/java/org/apache/helix/controller/rebalancer/condition/TopologyChangeBasedCondition.java
(68%)
delete mode 100644
helix-core/src/main/java/org/apache/helix/controller/rebalancer/strategy/GreedyRebalanceStrategy.java
create mode 100644
helix-core/src/main/java/org/apache/helix/controller/rebalancer/strategy/StickyRebalanceStrategy.java
delete mode 100644
helix-core/src/test/java/org/apache/helix/controller/rebalancer/TestGreedyRebalanceStrategy.java
create mode 100644
helix-core/src/test/java/org/apache/helix/controller/rebalancer/TestStickyRebalanceStrategy.java
create mode 100644
helix-core/src/test/java/org/apache/helix/integration/rebalancer/TestStickyRebalanceStrategy.java
rename
helix-core/src/test/java/org/apache/helix/integration/rebalancer/{TestGreedyRebalanceWithGlobalPerInstancePartitionLimit.java
=> TestStickyRebalanceWithGlobalPerInstancePartitionLimit.java} (77%)
copy {helix-common => helix-gateway}/LICENSE (100%)
copy {helix-common => helix-gateway}/NOTICE (100%)
copy helix-rest/helix-rest-1.4.4-SNAPSHOT.ivy =>
helix-gateway/helix-gateway-1.4.2-SNAPSHOT.ivy (94%)
copy {zookeeper-api => helix-gateway}/pom.xml (61%)
copy {helix-lock => helix-gateway}/src/assemble/assembly.xml (91%)
copy helix-core/src/test/java/org/apache/helix/TestGetProperty.java =>
helix-gateway/src/main/java/org/apache/helix/gateway/HelixGatewayMain.java (50%)
copy
helix-core/src/main/java/org/apache/helix/cloud/event/AbstractEventHandler.java
=>
helix-gateway/src/main/java/org/apache/helix/gateway/api/constant/GatewayServiceConfigConstant.java
(66%)
copy helix-common/src/main/java/org/apache/helix/ZNRecordDelta.java =>
helix-gateway/src/main/java/org/apache/helix/gateway/api/constant/GatewayServiceEventType.java
(77%)
copy
helix-core/src/main/java/org/apache/helix/controller/stages/IntermediateStateOutput.java
=>
helix-gateway/src/main/java/org/apache/helix/gateway/api/constant/GatewayServiceManagerConstant.java
(78%)
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/api/service/HelixGatewayServiceChannel.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/channel/GatewayServiceChannelConfig.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/channel/HelixGatewayServiceChannelFactory.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/channel/HelixGatewayServiceGrpcService.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/channel/HelixGatewayServicePollModeChannel.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/participant/HelixGatewayParticipant.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/service/GatewayServiceEvent.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/service/GatewayServiceManager.java
copy
helix-core/src/test/java/org/apache/helix/mock/participant/MockMSStateModel.java
=>
helix-gateway/src/main/java/org/apache/helix/gateway/statemodel/HelixGatewayMultiTopStateStateModel.java
(53%)
copy
recipes/rabbitmq-consumer-group/src/main/java/org/apache/helix/recipes/rabbitmq/ConsumerStateModelFactory.java
=>
helix-gateway/src/main/java/org/apache/helix/gateway/statemodel/HelixGatewayMultiTopStateStateModelFactory.java
(57%)
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/util/GatewayCurrentStateCache.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/util/PerKeyBlockingExecutor.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/util/PerKeyLockRegistry.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/util/PollChannelUtil.java
create mode 100644
helix-gateway/src/main/java/org/apache/helix/gateway/util/StateTransitionMessageTranslateUtil.java
create mode 100644 helix-gateway/src/main/proto/HelixGatewayService.proto
copy {helix-lock => helix-gateway}/src/test/conf/testng.xml (95%)
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/TestPerKeyBlockingExecutor.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/TestPerKeyLockRegistry.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/base/HelixGatewayTestBase.java
copy helix-core/src/test/java/org/apache/helix/common/ZkTestBase.java =>
helix-gateway/src/test/java/org/apache/helix/gateway/base/ZookeeperTestBase.java
(92%)
copy {helix-core/src/test/java/org/apache/helix/integration =>
helix-gateway/src/test/java/org/apache/helix/gateway/base}/manager/ClusterControllerManager.java
(97%)
copy {helix-core/src/test/java/org/apache/helix/integration =>
helix-gateway/src/test/java/org/apache/helix/gateway/base}/manager/ClusterManager.java
(92%)
copy {helix-core/src/test/java/org/apache/helix/integration =>
helix-gateway/src/test/java/org/apache/helix/gateway/base}/manager/MockParticipantManager.java
(69%)
copy
helix-core/src/test/java/org/apache/helix/mock/participant/MockMSModelFactory.java
=>
helix-gateway/src/test/java/org/apache/helix/gateway/base/statemodel/MockOFModelFactory.java
(77%)
copy
helix-core/src/test/java/org/apache/helix/mock/participant/MockMSStateModel.java
=>
helix-gateway/src/test/java/org/apache/helix/gateway/base/statemodel/MockOFStateModel.java
(89%)
copy {helix-core/src/test/java/org/apache/helix/mock/participant =>
helix-gateway/src/test/java/org/apache/helix/gateway/base/statemodel}/MockTransition.java
(96%)
copy {helix-core/src/test/java/org/apache/helix =>
helix-gateway/src/test/java/org/apache/helix/gateway/base/util}/TestHelper.java
(78%)
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/channel/TestGatewayServiceChannelConfig.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/channel/TestHelixGatewayServicePollModeChannel.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/integration/TestFilePullChannelE2E.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/participant/TestHelixGatewayParticipant.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/service/TestGatewayServiceConnection.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/service/TestGatewayServiceManager.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/util/TestGatewayCurrentStateCache.java
create mode 100644
helix-gateway/src/test/java/org/apache/helix/gateway/util/TestStateTransitionMessageTranslateUtil.java
copy {helix-common => helix-gateway}/src/test/resources/log4j2.properties
(100%)