mluvin-stripe commented on code in PR #17579:
URL: https://github.com/apache/pinot/pull/17579#discussion_r2855285095


##########
pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java:
##########
@@ -379,8 +379,16 @@ private void setupHelixClusterConstraints() {
             MAX_STATE_TRANSITIONS_PER_RESOURCE, constraintItemResource);
   }
 
-  protected void addUtilizationChecker(UtilizationChecker utilizationChecker) {
-    _utilizationCheckers.add(utilizationChecker);
+  protected void maybeAddUtilizationChecker(UtilizationChecker 
utilizationChecker,
+      boolean isSpecificUtilizationCheckerEnabled) {
+    // Add utilization checker if:
+    // 1. All resource utilization checkers are enabled, OR
+    // 2. This specific utilization checker is enabled, OR
+    // 3. The legacy resource utilization check config is enabled (backwards 
compatibility)
+    if (_config.isAllResourceUtilizationCheckersEnabled() || 
isSpecificUtilizationCheckerEnabled
+        || _config.isResourceUtilizationCheckEnabled()) {
+      _utilizationCheckers.add(utilizationChecker);
+    }

Review Comment:
   @Jackie-Jiang i'll change this logic (will be in a separate function as 
well) to just be 
   ```suggestion
       if (_config.isAllResourceUtilizationCheckersEnabled() || 
isSpecificUtilizationCheckerEnabled) {
         _utilizationCheckers.add(utilizationChecker);
       }
   ```
   which will be backwards compatible since i'll change the new 
`controller.enable.resource.utilization.checkers.all` to be `true` by default



##########
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentUploadDownloadRestletResource.java:
##########
@@ -403,6 +411,27 @@ private SuccessResponse uploadSegment(@Nullable String 
tableName, TableType tabl
       SegmentValidationUtils.checkStorageQuota(segmentName, 
segmentSizeInBytes, untarredSegmentSizeInBytes, tableConfig,
           _storageQuotaChecker);
 
+      // Perform resource utilization checks
+      UtilizationChecker.CheckResult isDiskUtilizationWithinLimits =

Review Comment:
   thanks, missed renaming this



##########
pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java:
##########
@@ -379,8 +379,16 @@ private void setupHelixClusterConstraints() {
             MAX_STATE_TRANSITIONS_PER_RESOURCE, constraintItemResource);
   }
 
-  protected void addUtilizationChecker(UtilizationChecker utilizationChecker) {
-    _utilizationCheckers.add(utilizationChecker);
+  protected void maybeAddUtilizationChecker(UtilizationChecker 
utilizationChecker,

Review Comment:
   got it. i'll make a separate `shouldAddUtilizationChecker` method instead 
and call that before constructing the `DiskUtilizationChecker`



##########
pinot-controller/src/main/java/org/apache/pinot/controller/ControllerConf.java:
##########
@@ -377,6 +388,8 @@ public static long getRandomInitialDelayInSeconds() {
   public static final int DEFAULT_DISK_UTILIZATION_CHECK_TIMEOUT_MS = 30_000;
   public static final String DEFAULT_DISK_UTILIZATION_PATH = 
"/home/pinot/data";
   public static final boolean DEFAULT_ENABLE_RESOURCE_UTILIZATION_CHECK = 
false;
+  public static final boolean DEFAULT_ENABLE_ALL_RESOURCE_UTILIZATION_CHECKERS 
= false;
+  public static final boolean DEFAULT_ENABLE_DISK_UTILIZATION_CHECKER = false;

Review Comment:
   i see what you mean now given 
https://github.com/apache/pinot/pull/17579/changes#r2855262308. will change



##########
pinot-controller/src/main/java/org/apache/pinot/controller/ControllerConf.java:
##########
@@ -342,7 +343,17 @@ public static long getRandomInitialDelayInSeconds() {
   public static final String DISK_UTILIZATION_THRESHOLD = 
"controller.disk.utilization.threshold"; // 0 < threshold < 1
   public static final String DISK_UTILIZATION_CHECK_TIMEOUT_MS = 
"controller.disk.utilization.check.timeoutMs";
   public static final String DISK_UTILIZATION_PATH = 
"controller.disk.utilization.path";
+  // Deprecated in favor of controller.enable.resource.utilization.checkers.all
+  @Deprecated

Review Comment:
   I see what you're saying. This config should remain unchanged, as it's used 
[here](https://github.com/mluvin-stripe/pinot/blob/234d38239643914c5c193e4f297e4d4f2432c1a7/pinot-controller/src/main/java/org/apache/pinot/controller/validation/ResourceUtilizationManager.java#L51)
 to determine whether or not to even run the utilization checkers.
   
   the new `controller.enable.all.resource.utilization.checkers` will control 
whether to plug in all the checkers; 
`controller.enable.disk.utilization.checker` controls just the disk utilization 
checker if the `all` config is disabled



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