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]

Reply via email to