| org.apache.helix.controller.rebalancer.HelixRebalancer |
Known Indirect Subclasses
|
Allows one to come up with custom implementation of a rebalancer.
This will be invoked on all changes that happen in the cluster.
Simply return the resource assignment for a resource in this method.
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Given an ideal state for a resource and liveness of participants, compute a assignment of
instances and states to each partition of a resource.
| |||||||||||
Initialize the rebalancer with a HelixManager and ControllerContextProvider if necessary
| |||||||||||
Given an ideal state for a resource and liveness of participants, compute a assignment of
instances and states to each partition of a resource. This method provides all the relevant
information needed to rebalance a resource. If you need additional information use
manager.getAccessor to read and write the cluster data. This allows one to compute the
ResourceAssignment according to app-specific requirements.
Say that you have:
class MyRebalancerConfig implements RebalancerConfigas your rebalancer config. To get a typed version, you can do the following:
MyRebalancerConfig config = BasicRebalancerConfig.convert(rebalancerConfig,
MyRebalancerConfig.class);
| rebalancerConfig | the properties of the resource for which a mapping will be computed |
|---|---|
| prevAssignment | the previous ResourceAssignment of this cluster, or null if none |
| cluster | complete snapshot of the cluster |
| currentState | the current states of all partitions |
Initialize the rebalancer with a HelixManager and ControllerContextProvider if necessary
| contextProvider | An object that supports getting and setting context across pipeline runs |
|---|