klsince commented on code in PR #15317:
URL: https://github.com/apache/pinot/pull/15317#discussion_r2017149571


##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/DefaultRebalancePreChecker.java:
##########
@@ -279,6 +299,43 @@ private RebalancePreCheckerResult 
checkDiskUtilization(Map<String, Map<String, S
         : RebalancePreCheckerResult.error(message.toString());
   }
 
+  private RebalancePreCheckerResult checkRebalanceConfig(RebalanceConfig 
rebalanceConfig, TableConfig tableConfig,
+      Map<String, Map<String, String>> currentAssignment, Map<String, 
Map<String, String>> targetAssignment) {
+    StringBuilder message = new StringBuilder();

Review Comment:
   nit: it might be easier to collect all warning into a List<String> and then 
do a StringUtils.Join() in the end, so no need to worry about the format while 
collecting those warning strings. 
   
   Also, instead of joining all strings into one string in the end, it might be 
more readable to simply keep `message` field as a List field in the final 
output JSON msg.



##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/DefaultRebalancePreChecker.java:
##########
@@ -135,26 +143,29 @@ private RebalancePreCheckerResult 
checkReloadNeededOnServers(String rebalanceJob
    * Checks if minimize data movement is set for the given table in the 
TableConfig
    */
   private RebalancePreCheckerResult checkIsMinimizeDataMovement(String 
rebalanceJobId, String tableNameWithType,
-      TableConfig tableConfig) {
+      TableConfig tableConfig, RebalanceConfig rebalanceConfig) {
     LOGGER.info("Checking whether minimizeDataMovement is set for table: {} 
with rebalanceJobId: {}", tableNameWithType,
         rebalanceJobId);
     try {
       if (tableConfig.getTableType() == TableType.OFFLINE) {
         boolean isInstanceAssignmentAllowed = 
InstanceAssignmentConfigUtils.allowInstanceAssignment(tableConfig,
             InstancePartitionsType.OFFLINE);
-        RebalancePreCheckerResult rebalancePreCheckerResult;
         if (isInstanceAssignmentAllowed) {
+          if (rebalanceConfig.getMinimizeDataMovement() == 
RebalanceConfig.MinimizeDataMovementOptions.ENABLE) {
+            return RebalancePreCheckerResult.pass("minimizeDataMovement is 
enabled");
+          }
           InstanceAssignmentConfig instanceAssignmentConfig =
               
InstanceAssignmentConfigUtils.getInstanceAssignmentConfig(tableConfig, 
InstancePartitionsType.OFFLINE);
-          rebalancePreCheckerResult = 
instanceAssignmentConfig.isMinimizeDataMovement()
-              ? RebalancePreCheckerResult.pass("minimizeDataMovement is 
enabled")
-              : RebalancePreCheckerResult.warn("minimizeDataMovement is not 
enabled but instance assignment "
-                  + "is allowed");
-        } else {
-          rebalancePreCheckerResult =
-              RebalancePreCheckerResult.pass("Instance assignment not allowed, 
no need for minimizeDataMovement");
+          if (instanceAssignmentConfig.isMinimizeDataMovement()) {
+            return rebalanceConfig.getMinimizeDataMovement() == 
RebalanceConfig.MinimizeDataMovementOptions.DISABLE
+                ? RebalancePreCheckerResult.warn("minimizeDataMovement is 
enabled in table config but it's overridden "
+                + "with disabled")
+                : RebalancePreCheckerResult.pass("minimizeDataMovement is 
enabled");

Review Comment:
   nit: fold this line up?



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to