Class ClusterChangeMediator
- java.lang.Object
-
- org.apache.pinot.broker.broker.helix.ClusterChangeMediator
-
- All Implemented Interfaces:
org.apache.helix.api.listeners.ExternalViewChangeListener,org.apache.helix.api.listeners.IdealStateChangeListener,org.apache.helix.api.listeners.InstanceConfigChangeListener,org.apache.helix.api.listeners.LiveInstanceChangeListener
public class ClusterChangeMediator extends Object implements org.apache.helix.api.listeners.IdealStateChangeListener, org.apache.helix.api.listeners.ExternalViewChangeListener, org.apache.helix.api.listeners.InstanceConfigChangeListener, org.apache.helix.api.listeners.LiveInstanceChangeListener
TheClusterChangeMediatorhandles the changes from Helix cluster.If there is no change callback in 1 hour, proactively check changes so that the changes are getting processed even when callbacks stop working.
NOTE: disable Helix batch-mode and perform deduplication in this class. This can save us the extra threads for handling Helix batch-mode, and let us track the cluster change queue time.
NOTE: disable Helix pre-fetch to reduce the ZK accesses.
-
-
Constructor Summary
Constructors Constructor Description ClusterChangeMediator(Map<org.apache.helix.HelixConstants.ChangeType,List<ClusterChangeHandler>> changeHandlersMap, org.apache.pinot.common.metrics.BrokerMetrics brokerMetrics)
-
Method Summary
Modifier and Type Method Description voidonExternalViewChange(List<org.apache.helix.model.ExternalView> externalViewList, org.apache.helix.NotificationContext changeContext)voidonIdealStateChange(List<org.apache.helix.model.IdealState> idealStateList, org.apache.helix.NotificationContext changeContext)voidonInstanceConfigChange(List<org.apache.helix.model.InstanceConfig> instanceConfigs, org.apache.helix.NotificationContext changeContext)voidonLiveInstanceChange(List<org.apache.helix.model.LiveInstance> liveInstances, org.apache.helix.NotificationContext changeContext)voidstart()Starts the cluster change mediator.voidstop()Stops the cluster change mediator.
-
-
-
Constructor Detail
-
ClusterChangeMediator
public ClusterChangeMediator(Map<org.apache.helix.HelixConstants.ChangeType,List<ClusterChangeHandler>> changeHandlersMap, org.apache.pinot.common.metrics.BrokerMetrics brokerMetrics)
-
-
Method Detail
-
start
public void start()
Starts the cluster change mediator.
-
stop
public void stop()
Stops the cluster change mediator.
-
onIdealStateChange
public void onIdealStateChange(List<org.apache.helix.model.IdealState> idealStateList, org.apache.helix.NotificationContext changeContext) throws InterruptedException
- Specified by:
onIdealStateChangein interfaceorg.apache.helix.api.listeners.IdealStateChangeListener- Throws:
InterruptedException
-
onExternalViewChange
public void onExternalViewChange(List<org.apache.helix.model.ExternalView> externalViewList, org.apache.helix.NotificationContext changeContext)
- Specified by:
onExternalViewChangein interfaceorg.apache.helix.api.listeners.ExternalViewChangeListener
-
onInstanceConfigChange
public void onInstanceConfigChange(List<org.apache.helix.model.InstanceConfig> instanceConfigs, org.apache.helix.NotificationContext changeContext)
- Specified by:
onInstanceConfigChangein interfaceorg.apache.helix.api.listeners.InstanceConfigChangeListener
-
onLiveInstanceChange
public void onLiveInstanceChange(List<org.apache.helix.model.LiveInstance> liveInstances, org.apache.helix.NotificationContext changeContext)
- Specified by:
onLiveInstanceChangein interfaceorg.apache.helix.api.listeners.LiveInstanceChangeListener
-
-