-
Notifications
You must be signed in to change notification settings - Fork 229
Apache Helix 2.0 Overview
Apache Helix has been stable for a long time, but there are several areas where we can make significant improvements. The proposal of new generation of Apache Helix with the following major goals:
- Multi-language support
- Simpler API and user experience
- Improved data model, communication protocol, and system performance
- More pluggabilities
To achieve these goals, I have outlined the following projects:
-
Multi-language support: Develop a gateway service that accepts general state transition calls through gRPC.
-
API simplification: Minimize both client and Admin APIs to streamline the process.
-
Simplified data model and communication protocol: Instead of defining a fine-grained state model, provide users with the final state and allow the application to progressively update its own partition states. This will minimize round trips between the Helix controller and participants and reduce traffic to the storage (Zookeeper).
-
Components "micro-servicing": Abstract some components to offer the capability to plug user own logic. For example, choose move one partition at a time as movement strategy instead of using per partition N -> N + 1 by default.
-
User guide / configuration documentation: Document all the features supported by Helix and update the configurations / examples.
Pull Request Description Template
ZooKeeper API module for Apache Helix
DataAccessor for Assignment Metadata
Concurrency and Parallelism for BucketDataAccessor
WAGED Rebalance Pipeline Redesign
WAGED rebalancer Hard Constraint Scope Expansion
IdealState Dependency Removal Progression Remove requested state in Task Framework