jiajunwang commented on a change in pull request #851: Add customized view
computation and modify Helix generic controller to include new stage
URL: https://github.com/apache/helix/pull/851#discussion_r388618049
##########
File path:
helix-core/src/main/java/org/apache/helix/controller/GenericHelixController.java
##########
@@ -431,16 +443,31 @@ private static PipelineRegistry
createDefaultRegistry(String pipelineName) {
Pipeline autoExitMaintenancePipeline = new Pipeline(pipelineName);
autoExitMaintenancePipeline.addStage(new MaintenanceRecoveryStage());
- registry.register(ClusterEventType.IdealStateChange, dataRefresh,
dataPreprocess, rebalancePipeline);
- registry.register(ClusterEventType.CurrentStateChange, dataRefresh,
dataPreprocess, externalViewPipeline, rebalancePipeline);
- registry.register(ClusterEventType.InstanceConfigChange, dataRefresh,
dataPreprocess, rebalancePipeline);
- registry.register(ClusterEventType.ResourceConfigChange, dataRefresh,
dataPreprocess, rebalancePipeline);
- registry.register(ClusterEventType.ClusterConfigChange, dataRefresh,
autoExitMaintenancePipeline, dataPreprocess, rebalancePipeline);
- registry.register(ClusterEventType.LiveInstanceChange, dataRefresh,
autoExitMaintenancePipeline, liveInstancePipeline, dataPreprocess,
externalViewPipeline, rebalancePipeline);
- registry.register(ClusterEventType.MessageChange, dataRefresh,
dataPreprocess, rebalancePipeline);
- registry.register(ClusterEventType.Resume, dataRefresh, dataPreprocess,
externalViewPipeline, rebalancePipeline);
- registry.register(ClusterEventType.PeriodicalRebalance, dataRefresh,
autoExitMaintenancePipeline, dataPreprocess, externalViewPipeline,
rebalancePipeline);
- registry.register(ClusterEventType.OnDemandRebalance, dataRefresh,
autoExitMaintenancePipeline, dataPreprocess, externalViewPipeline,
rebalancePipeline);
+ registry.register(ClusterEventType.IdealStateChange, dataRefresh,
dataPreprocess,
+ rebalancePipeline);
+ registry.register(ClusterEventType.CurrentStateChange, dataRefresh,
dataPreprocess,
+ externalViewPipeline, rebalancePipeline);
+ registry.register(ClusterEventType.InstanceConfigChange, dataRefresh,
dataPreprocess,
+ rebalancePipeline);
+ registry.register(ClusterEventType.ResourceConfigChange, dataRefresh,
dataPreprocess,
+ rebalancePipeline);
+ registry.register(ClusterEventType.ClusterConfigChange, dataRefresh,
+ autoExitMaintenancePipeline, dataPreprocess, rebalancePipeline);
+ registry.register(ClusterEventType.LiveInstanceChange, dataRefresh,
+ autoExitMaintenancePipeline, liveInstancePipeline, dataPreprocess,
externalViewPipeline, customizedViewPipeline,
+ rebalancePipeline);
+ registry.register(ClusterEventType.MessageChange, dataRefresh,
dataPreprocess,
+ rebalancePipeline);
+ registry.register(ClusterEventType.Resume, dataRefresh, dataPreprocess,
externalViewPipeline,
+ rebalancePipeline);
+ registry.register(ClusterEventType.PeriodicalRebalance, dataRefresh,
+ autoExitMaintenancePipeline, dataPreprocess, externalViewPipeline,
rebalancePipeline);
+ registry.register(ClusterEventType.OnDemandRebalance, dataRefresh,
+ autoExitMaintenancePipeline, dataPreprocess, externalViewPipeline,
rebalancePipeline);
+ registry.register(ClusterEventType.CustomizedStateChange, dataRefresh,
dataPreprocess,
Review comment:
This is problematic. If you refresh all the data, including current state,
idealstate etc., then you don't do rebalancePipeline, the controller might fail
to react on some critical event.
I think we need to separate the custiomizedState read stage from the
dataPreprocess (maybe also data refresh).
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]