This is an automated email from the ASF dual-hosted git repository.

Jackie-Jiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 6bb61cac7d5 remove needReload check in table rebalance (#19295)
6bb61cac7d5 is described below

commit 6bb61cac7d56d79b36b4aa1178963fb10f28d1bf
Author: Jhow <[email protected]>
AuthorDate: Thu Aug 20 01:56:14 2026 +0800

    remove needReload check in table rebalance (#19295)
---
 .../core/rebalance/DefaultRebalancePreChecker.java |  44 -------
 .../TableRebalancerClusterStatelessTest.java       |   9 +-
 .../tests/TableRebalanceIntegrationTest.java       | 131 +++------------------
 3 files changed, 19 insertions(+), 165 deletions(-)

diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/DefaultRebalancePreChecker.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/DefaultRebalancePreChecker.java
index e99906b6ebb..905690e1ed8 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/DefaultRebalancePreChecker.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/DefaultRebalancePreChecker.java
@@ -17,8 +17,6 @@
  * under the License.
  */
 package org.apache.pinot.controller.helix.core.rebalance;
-import com.fasterxml.jackson.databind.JsonNode;
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -29,16 +27,13 @@ import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import javax.annotation.Nullable;
 import org.apache.commons.collections4.CollectionUtils;
-import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
 import org.apache.pinot.common.assignment.InstanceAssignmentConfigUtils;
-import org.apache.pinot.common.exception.InvalidConfigException;
 import org.apache.pinot.common.restlet.resources.DiskUsageInfo;
 import org.apache.pinot.common.restlet.resources.RebalanceConfig;
 import org.apache.pinot.common.restlet.resources.RebalancePreCheckerResult;
 import org.apache.pinot.common.restlet.resources.RebalanceSummaryResult;
 import org.apache.pinot.controller.helix.core.PinotHelixResourceManager;
 import 
org.apache.pinot.controller.helix.core.assignment.segment.SegmentAssignmentUtils;
-import org.apache.pinot.controller.util.TableMetadataReader;
 import org.apache.pinot.controller.util.TableSizeReader;
 import org.apache.pinot.controller.validation.ResourceUtilizationInfo;
 import org.apache.pinot.spi.config.table.TableConfig;
@@ -54,7 +49,6 @@ import org.slf4j.LoggerFactory;
 
 
 public class DefaultRebalancePreChecker implements RebalancePreChecker {
-  public static final String NEEDS_RELOAD_STATUS = "needsReloadStatus";
   public static final String IS_MINIMIZE_DATA_MOVEMENT = 
"isMinimizeDataMovement";
   public static final String DISK_UTILIZATION = "diskUtilization";
   public static final String REBALANCE_CONFIG_OPTIONS = 
"rebalanceConfigOptions";
@@ -90,8 +84,6 @@ public class DefaultRebalancePreChecker implements 
RebalancePreChecker {
     // Right now pre-check items are done sequentially. If pre-check items are 
to be done in parallel, we should not
     // use linked hash map but to sort the result in the end
     Map<String, RebalancePreCheckerResult> preCheckResult = new 
LinkedHashMap<>();
-    // Check for reload status
-    preCheckResult.put(NEEDS_RELOAD_STATUS, 
checkReloadNeededOnServers(tableNameWithType, tableRebalanceLogger));
     // Check whether minimizeDataMovement is set in TableConfig
     preCheckResult.put(IS_MINIMIZE_DATA_MOVEMENT,
         checkIsMinimizeDataMovement(tableConfig, rebalanceConfig, 
tableRebalanceLogger));
@@ -120,42 +112,6 @@ public class DefaultRebalancePreChecker implements 
RebalancePreChecker {
     return preCheckResult;
   }
 
-  /// Checks if the current segments on any servers needs a reload (table 
config or schema change that hasn't been
-  /// applied yet). This check does not guarantee that the segments in deep 
store are up to date.
-  /// TODO: Add an API to check for whether segments in deep store are up to 
date with the table configs and schema
-  ///       and add a pre-check here to call that API.
-  private RebalancePreCheckerResult checkReloadNeededOnServers(String 
tableNameWithType, Logger tableRebalanceLogger) {
-    tableRebalanceLogger.info("Fetching whether reload is needed");
-    Boolean needsReload = null;
-    if (_executorService == null) {
-      tableRebalanceLogger.warn("Executor service is null, skipping 
needsReload check");
-      return RebalancePreCheckerResult.error("Could not determine needReload 
status, run needReload API manually");
-    }
-    try (PoolingHttpClientConnectionManager connectionManager = new 
PoolingHttpClientConnectionManager()) {
-      TableMetadataReader metadataReader = new 
TableMetadataReader(_executorService, connectionManager,
-          _pinotHelixResourceManager);
-      TableMetadataReader.TableReloadJsonResponse needsReloadMetadataPair =
-          
metadataReader.getServerCheckSegmentsReloadMetadata(tableNameWithType, 30_000);
-      Map<String, JsonNode> needsReloadMetadata = 
needsReloadMetadataPair.getServerReloadJsonResponses();
-      int failedResponses = needsReloadMetadataPair.getNumFailedResponses();
-      tableRebalanceLogger.info("Received {} needs reload responses and {} 
failed responses from servers assigned "
-          + "to table", needsReloadMetadata.size(), failedResponses);
-      needsReload = needsReloadMetadata.values().stream().anyMatch(value -> 
value.get("needReload").booleanValue());
-      if (!needsReload && failedResponses > 0) {
-        tableRebalanceLogger.warn("Received {} failed responses from servers 
and needsReload is false from returned "
-            + "responses, check needsReload status manually", failedResponses);
-        needsReload = null;
-      }
-    } catch (InvalidConfigException | IOException e) {
-      tableRebalanceLogger.warn("Caught exception while trying to fetch reload 
status from servers", e);
-    }
-
-    return needsReload == null
-        ? RebalancePreCheckerResult.error("Could not determine needReload 
status, run needReload API manually")
-        : !needsReload ? RebalancePreCheckerResult.pass("No need to reload")
-            : RebalancePreCheckerResult.warn("Reload needed prior to running 
rebalance");
-  }
-
   /// Checks if minimize data movement is set for the given table in the 
TableConfig
   private RebalancePreCheckerResult checkIsMinimizeDataMovement(TableConfig 
tableConfig,
       RebalanceConfig rebalanceConfig, Logger tableRebalanceLogger) {
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java
index d010aa7ccb6..e07d8e58b06 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java
@@ -277,18 +277,11 @@ public class TableRebalancerClusterStatelessTest extends 
ControllerTest {
       assertEquals(rebalanceResult.getStatus(), RebalanceResult.Status.DONE);
       Map<String, RebalancePreCheckerResult> preCheckResult = 
rebalanceResult.getPreChecksResult();
       assertNotNull(preCheckResult);
-      assertEquals(preCheckResult.size(), 5);
-      
assertTrue(preCheckResult.containsKey(DefaultRebalancePreChecker.NEEDS_RELOAD_STATUS));
+      assertEquals(preCheckResult.size(), 4);
       
assertTrue(preCheckResult.containsKey(DefaultRebalancePreChecker.IS_MINIMIZE_DATA_MOVEMENT));
       
assertTrue(preCheckResult.containsKey(DefaultRebalancePreChecker.DISK_UTILIZATION));
       
assertTrue(preCheckResult.containsKey(DefaultRebalancePreChecker.REBALANCE_CONFIG_OPTIONS));
       
assertTrue(preCheckResult.containsKey(DefaultRebalancePreChecker.REPLICA_GROUPS_INFO));
-      // Sending request to servers should fail for all, so needsPreprocess 
should be set to "error" to indicate that a
-      // manual check is needed
-      
assertEquals(preCheckResult.get(DefaultRebalancePreChecker.NEEDS_RELOAD_STATUS).getPreCheckStatus(),
-          RebalancePreCheckerResult.PreCheckStatus.ERROR);
-      
assertEquals(preCheckResult.get(DefaultRebalancePreChecker.NEEDS_RELOAD_STATUS).getMessage(),
-          "Could not determine needReload status, run needReload API 
manually");
       
assertEquals(preCheckResult.get(DefaultRebalancePreChecker.IS_MINIMIZE_DATA_MOVEMENT).getPreCheckStatus(),
           RebalancePreCheckerResult.PreCheckStatus.PASS);
       
assertEquals(preCheckResult.get(DefaultRebalancePreChecker.IS_MINIMIZE_DATA_MOVEMENT).getMessage(),
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/TableRebalanceIntegrationTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/TableRebalanceIntegrationTest.java
index d7e7713aaf2..ed24dcaf23f 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/TableRebalanceIntegrationTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/TableRebalanceIntegrationTest.java
@@ -27,7 +27,6 @@ import java.util.Map;
 import javax.ws.rs.core.Response;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.pinot.client.admin.PinotAdminNotFoundException;
-import 
org.apache.pinot.common.restlet.resources.PinotTableReloadStatusResponse;
 import org.apache.pinot.common.restlet.resources.RebalanceConfig;
 import org.apache.pinot.common.restlet.resources.RebalancePreCheckerResult;
 import org.apache.pinot.common.restlet.resources.RebalanceResult;
@@ -35,9 +34,6 @@ import 
org.apache.pinot.common.restlet.resources.RebalanceSummaryResult;
 import org.apache.pinot.common.restlet.resources.TableRebalanceProgressStats;
 import org.apache.pinot.common.tier.TierFactory;
 import org.apache.pinot.common.utils.config.TagNameUtils;
-import org.apache.pinot.common.utils.regex.JavaUtilPattern;
-import org.apache.pinot.common.utils.regex.Matcher;
-import org.apache.pinot.common.utils.regex.Pattern;
 import org.apache.pinot.controller.ControllerConf;
 import org.apache.pinot.controller.helix.core.controllerjob.ControllerJobTypes;
 import 
org.apache.pinot.controller.helix.core.rebalance.DefaultRebalancePreChecker;
@@ -173,7 +169,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "COMPLETED segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication()
@@ -191,8 +186,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is not enabled for COMPLETED segments, but 
instance assignment is allowed",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
             + replicaGroupPartitionConfig.getNumReplicaGroups() + ", 
numInstancesPerReplicaGroup: "
@@ -213,7 +207,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
@@ -232,8 +225,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled for COMPLETED segments in table 
config but it's overridden with disabled",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
             + replicaGroupPartitionConfig.getNumReplicaGroups() + ", 
numInstancesPerReplicaGroup: "
@@ -252,8 +244,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is not enabled for CONSUMING segments, but 
instance assignment is allowed",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - Replica Groups are "
             + "not enabled, replication: " + tableConfig.getReplication() + 
"\nCONSUMING segments - numReplicaGroups: "
@@ -274,7 +265,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - Replica Groups are "
@@ -294,8 +284,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled for CONSUMING segments in table 
config but it's overridden with disabled",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - Replica Groups are "
             + "not enabled, replication: " + tableConfig.getReplication() + 
"\nCONSUMING segments - numReplicaGroups: "
@@ -316,8 +305,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is not enabled for either or both COMPLETED and 
CONSUMING segments, but instance "
             + "assignment is allowed for both",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
             + replicaGroupPartitionConfig.getNumReplicaGroups() + ", 
numInstancesPerReplicaGroup: "
@@ -341,7 +329,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
@@ -363,7 +350,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
@@ -387,8 +373,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled for both COMPLETED and CONSUMING 
segments in table config but it's "
             + "overridden with disabled",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
             + replicaGroupPartitionConfig.getNumReplicaGroups() + ", 
numInstancesPerReplicaGroup: "
@@ -410,8 +395,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is not enabled for either or both COMPLETED and 
CONSUMING segments, but instance "
             + "assignment is allowed for both",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
             + replicaGroupPartitionConfig.getNumReplicaGroups() + ", 
numInstancesPerReplicaGroup: "
@@ -436,8 +420,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled for CONSUMING segments in table 
config but it's overridden with disabled",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - Replica Groups are "
             + "not enabled, replication: " + tableConfig.getReplication() + 
"\nCONSUMING segments - numReplicaGroups: "
@@ -468,7 +451,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "includeConsuming is 
disabled for a realtime table.",
         RebalancePreCheckerResult.PreCheckStatus.WARN,
         "COMPLETED segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication()
@@ -486,7 +468,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled", 
RebalancePreCheckerResult.PreCheckStatus.PASS,
-        "No need to reload", RebalancePreCheckerResult.PreCheckStatus.PASS,
         "All rebalance parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
@@ -504,8 +485,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "Reload needed prior to 
running rebalance",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "COMPLETED segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication()
             + "\nCONSUMING segments - Replica Groups are not enabled, 
replication: " + tableConfig.getReplication(),
@@ -517,7 +497,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "COMPLETED segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication()
@@ -525,9 +504,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
         RebalancePreCheckerResult.PreCheckStatus.PASS);
 
     // Add a new server (to force change in instance assignment) and enable 
reassignInstances
-    // Validate that the status for reload is still PASS (i.e. even though an 
extra server is tagged which has no
-    // segments assigned for this table, we don't try to get needReload status 
from that extra server, otherwise
-    // ERROR status would be returned)
     BaseServerStarter serverStarter0 = startOneServer(NUM_SERVERS);
     createServerTenant(getServerTenant(), 0, 1);
     rebalanceConfig.setReassignInstances(true);
@@ -536,7 +512,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.DONE,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "COMPLETED segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication()
@@ -557,8 +532,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "Reload needed prior to 
running rebalance",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "COMPLETED segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication()
             + "\nCONSUMING segments - Replica Groups are not enabled, 
replication: " + tableConfig.getReplication(),
@@ -573,7 +547,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled", 
RebalancePreCheckerResult.PreCheckStatus.PASS,
-        "Reload needed prior to running rebalance", 
RebalancePreCheckerResult.PreCheckStatus.WARN,
         "All rebalance parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - numReplicaGroups: "
@@ -592,8 +565,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "Reload needed prior to 
running rebalance",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nCOMPLETED segments - Replica Groups are "
             + "not enabled, replication: " + tableConfig.getReplication() + 
"\nCONSUMING segments - numReplicaGroups: "
@@ -615,8 +587,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.DONE,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "Reload needed prior to 
running rebalance",
-        RebalancePreCheckerResult.PreCheckStatus.WARN,
+        RebalancePreCheckerResult.PreCheckStatus.PASS,
         "bestEfforts is enabled, only enable it if you know what you are 
doing\n"
             + "bootstrap is enabled which can cause a large amount of data 
movement, double check if this is "
             + "intended", RebalancePreCheckerResult.PreCheckStatus.WARN,
@@ -624,15 +595,11 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
             + "\nCONSUMING segments - Replica Groups are not enabled, 
replication: " + tableConfig.getReplication(),
         RebalancePreCheckerResult.PreCheckStatus.PASS);
 
-    String response = reloadRealtimeTable(getTableName());
-    waitForReloadToComplete(getReloadJobIdFromResponse(response), 30_000);
-
     rebalanceConfig.setBestEfforts(false);
     rebalanceConfig.setBootstrap(false);
     rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.REALTIME);
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.DONE,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "COMPLETED segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication()
@@ -668,7 +635,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "OFFLINE segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication(),
@@ -685,7 +651,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled", 
RebalancePreCheckerResult.PreCheckStatus.PASS,
-        "No need to reload", RebalancePreCheckerResult.PreCheckStatus.PASS,
         "All rebalance parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nOFFLINE segments - numReplicaGroups: "
@@ -700,8 +665,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled in table config but it's overridden 
with disabled",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nOFFLINE segments - numReplicaGroups: "
             + replicaGroupPartitionConfig.getNumReplicaGroups() + ", 
numInstancesPerReplicaGroup: "
@@ -720,8 +684,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is not enabled but instance assignment is 
allowed",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "No need to reload",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nOFFLINE segments - numReplicaGroups: "
             + replicaGroupPartitionConfig.getNumReplicaGroups() + ", 
numInstancesPerReplicaGroup: "
@@ -738,8 +701,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "Reload needed prior to 
running rebalance",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "OFFLINE segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication(),
         RebalancePreCheckerResult.PreCheckStatus.PASS);
@@ -751,7 +713,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "OFFLINE segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication(),
@@ -768,7 +729,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "OFFLINE segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication()
@@ -780,7 +740,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "updateTargetTier should be enabled when tier configs are present",
         RebalancePreCheckerResult.PreCheckStatus.WARN,
@@ -793,9 +752,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     updateTableConfig(tableConfig);
 
     // Add a new server (to force change in instance assignment) and enable 
reassignInstances
-    // Validate that the status for reload is still PASS (i.e. even though an 
extra server is tagged which has no
-    // segments assigned for this table, we don't try to get needReload status 
from that extra server, otherwise
-    // ERROR status would be returned)
     BaseServerStarter serverStarter0 = startOneServer(NUM_SERVERS);
     rebalanceConfig.setReassignInstances(true);
     tableConfig.setInstanceAssignmentConfigMap(null);
@@ -803,7 +759,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.DONE,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "OFFLINE segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication(),
@@ -823,8 +778,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "Reload needed prior to 
running rebalance",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "OFFLINE segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication(),
         RebalancePreCheckerResult.PreCheckStatus.PASS);
@@ -839,7 +793,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled", 
RebalancePreCheckerResult.PreCheckStatus.PASS,
-        "Reload needed prior to running rebalance", 
RebalancePreCheckerResult.PreCheckStatus.WARN,
         "All rebalance parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nOFFLINE segments - numReplicaGroups: "
@@ -858,8 +811,7 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.NO_OP,
         "minimizeDataMovement is enabled",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "Reload needed prior to 
running rebalance",
-        RebalancePreCheckerResult.PreCheckStatus.WARN, "All rebalance 
parameters look good",
+        RebalancePreCheckerResult.PreCheckStatus.PASS, "All rebalance 
parameters look good",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "reassignInstances is disabled, replica groups may not be 
updated.\nOFFLINE segments - numReplicaGroups: "
             + replicaGroupPartitionConfig.getNumReplicaGroups() + ", 
numInstancesPerReplicaGroup: "
@@ -880,25 +832,6 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
     assertNotNull(rebalanceResult.getRebalanceSummaryResult());
     checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.DONE,
         "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "Reload needed prior to 
running rebalance",
-        RebalancePreCheckerResult.PreCheckStatus.WARN,
-        "bestEfforts is enabled, only enable it if you know what you are 
doing\n"
-            + "bootstrap is enabled which can cause a large amount of data 
movement, double check if this is "
-            + "intended", RebalancePreCheckerResult.PreCheckStatus.WARN,
-        "OFFLINE segments - Replica Groups are not enabled, replication: " + 
tableConfig.getReplication(),
-        RebalancePreCheckerResult.PreCheckStatus.PASS);
-
-    // reload - needed due to the schema change since that cannot be undone
-    String response = reloadOfflineTable(getTableName(), false);
-    waitForReloadToComplete(getReloadJobIdFromResponse(response), 30_000);
-    // reload realtime table as well for other realtime tests
-    response = reloadRealtimeTable(getTableName());
-    waitForReloadToComplete(getReloadJobIdFromResponse(response), 30_000);
-
-    rebalanceResult = triggerTableRebalance(rebalanceConfig, 
TableType.OFFLINE);
-    checkRebalancePreCheckStatus(rebalanceResult, RebalanceResult.Status.DONE,
-        "Instance assignment not allowed, no need for minimizeDataMovement",
-        RebalancePreCheckerResult.PreCheckStatus.PASS, "No need to reload",
         RebalancePreCheckerResult.PreCheckStatus.PASS,
         "bestEfforts is enabled, only enable it if you know what you are 
doing\n"
             + "bootstrap is enabled which can cause a large amount of data 
movement, double check if this is "
@@ -925,25 +858,19 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
 
   private void checkRebalancePreCheckStatus(RebalanceResult rebalanceResult, 
RebalanceResult.Status expectedStatus,
       String expectedMinimizeDataMovement, 
RebalancePreCheckerResult.PreCheckStatus expectedMinimizeDataMovementStatus,
-      String expectedNeedsReloadMessage, 
RebalancePreCheckerResult.PreCheckStatus expectedNeedsReloadStatus,
       String expectedRebalanceConfig, RebalancePreCheckerResult.PreCheckStatus 
expectedRebalanceConfigStatus,
       String expectedReplicaGroupMessage, 
RebalancePreCheckerResult.PreCheckStatus expectedReplicaGroupStatus) {
     assertEquals(rebalanceResult.getStatus(), expectedStatus);
     Map<String, RebalancePreCheckerResult> preChecksResult = 
rebalanceResult.getPreChecksResult();
     assertNotNull(preChecksResult);
-    assertEquals(preChecksResult.size(), 5);
+    assertEquals(preChecksResult.size(), 4);
     
assertTrue(preChecksResult.containsKey(DefaultRebalancePreChecker.IS_MINIMIZE_DATA_MOVEMENT));
-    
assertTrue(preChecksResult.containsKey(DefaultRebalancePreChecker.NEEDS_RELOAD_STATUS));
     
assertTrue(preChecksResult.containsKey(DefaultRebalancePreChecker.DISK_UTILIZATION));
     
assertTrue(preChecksResult.containsKey(DefaultRebalancePreChecker.REBALANCE_CONFIG_OPTIONS));
     
assertEquals(preChecksResult.get(DefaultRebalancePreChecker.IS_MINIMIZE_DATA_MOVEMENT).getPreCheckStatus(),
         expectedMinimizeDataMovementStatus);
     
assertEquals(preChecksResult.get(DefaultRebalancePreChecker.IS_MINIMIZE_DATA_MOVEMENT).getMessage(),
         expectedMinimizeDataMovement);
-    
assertEquals(preChecksResult.get(DefaultRebalancePreChecker.NEEDS_RELOAD_STATUS).getPreCheckStatus(),
-        expectedNeedsReloadStatus);
-    
assertEquals(preChecksResult.get(DefaultRebalancePreChecker.NEEDS_RELOAD_STATUS).getMessage(),
-        expectedNeedsReloadMessage);
     
assertEquals(preChecksResult.get(DefaultRebalancePreChecker.REBALANCE_CONFIG_OPTIONS).getPreCheckStatus(),
         expectedRebalanceConfigStatus);
     
assertEquals(preChecksResult.get(DefaultRebalancePreChecker.REBALANCE_CONFIG_OPTIONS).getMessage(),
@@ -1412,26 +1339,4 @@ public class TableRebalanceIntegrationTest extends 
BaseHybridClusterIntegrationT
       serverStarter3.stop();
     }
   }
-
-  private String getReloadJobIdFromResponse(String response) {
-    Pattern pattern = new 
JavaUtilPattern("([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})");
-    Matcher matcher = pattern.matcher(response);
-    String jobId = matcher.find() ? matcher.group(1) : null;
-    if (jobId == null) {
-      return "";
-    }
-    return jobId;
-  }
-
-  private void waitForReloadToComplete(String reloadJobId, long timeoutMs) {
-    TestUtils.waitForCondition(aVoid -> {
-      try {
-        PinotTableReloadStatusResponse reloadResult = 
getOrCreateAdminClient().getSegmentClient()
-            .getSegmentReloadStatusObject(reloadJobId);
-        return reloadResult.getEstimatedTimeRemainingInMinutes() == 0.0;
-      } catch (Exception e) {
-        return null;
-      }
-    }, 1000L, timeoutMs, "Failed to reload all segments");
-  }
 }


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

Reply via email to