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