somandal commented on code in PR #15233:
URL: https://github.com/apache/pinot/pull/15233#discussion_r1994112946


##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/DefaultRebalancePreChecker.java:
##########
@@ -105,37 +102,87 @@ private Boolean checkReloadNeededOnServers(String 
rebalanceJobId, String tableNa
       LOGGER.warn("Caught exception while trying to fetch reload status from 
servers", e);
     }
 
-    return needsReload;
+    return needsReload == null
+        ? RebalancePreCheckerResult.error("Could not determine needReload 
status, run manually")
+        : !needsReload ? RebalancePreCheckerResult.pass("No need to reload")
+            : RebalancePreCheckerResult.warning("Reload needed prior to 
running rebalance");
   }
 
   /**
    * Checks if minimize data movement is set for the given table in the 
TableConfig
    */
-  private boolean checkIsMinimizeDataMovement(String rebalanceJobId, String 
tableNameWithType,
+  private RebalancePreCheckerResult checkIsMinimizeDataMovement(String 
rebalanceJobId, String tableNameWithType,
       TableConfig tableConfig) {
     LOGGER.info("Checking whether minimizeDataMovement is set for table: {} 
with rebalanceJobId: {}", tableNameWithType,
         rebalanceJobId);
     try {
       if (tableConfig.getTableType() == TableType.OFFLINE) {
-        InstanceAssignmentConfig instanceAssignmentConfig =
-            
InstanceAssignmentConfigUtils.getInstanceAssignmentConfig(tableConfig, 
InstancePartitionsType.OFFLINE);
-        return instanceAssignmentConfig.isMinimizeDataMovement();
+        boolean isInstanceAssignmentAllowed = 
InstanceAssignmentConfigUtils.allowInstanceAssignment(tableConfig,
+            InstancePartitionsType.OFFLINE);
+        InstanceAssignmentConfig instanceAssignmentConfig;
+        RebalancePreCheckerResult rebalancePreCheckerResult;
+        if (isInstanceAssignmentAllowed) {
+          instanceAssignmentConfig =
+              
InstanceAssignmentConfigUtils.getInstanceAssignmentConfig(tableConfig, 
InstancePartitionsType.OFFLINE);
+          rebalancePreCheckerResult = 
instanceAssignmentConfig.isMinimizeDataMovement()
+              ? RebalancePreCheckerResult.pass("minimizeDataMovement is 
enabled")
+              : RebalancePreCheckerResult.warning("minimizeDataMovement is not 
enabled but instance assignment "
+                  + "is allowed");
+        } else {
+          rebalancePreCheckerResult =
+              RebalancePreCheckerResult.pass("Instance assignment not allowed, 
no need for minimizeDataMovement");
+        }
+        return rebalancePreCheckerResult;

Review Comment:
   done



-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to