Jackie-Jiang commented on code in PR #17579:
URL: https://github.com/apache/pinot/pull/17579#discussion_r2824135464


##########
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:
   This is not really deprecated. It is used to control if utilization checker 
(the entire module) is enabled



##########
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:
   (minor)
   ```suggestion
         UtilizationChecker.CheckResult isResourceUtilizationWithinLimits =
   ```



##########
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:
   This is backward incompatible. It should be `true` by default



##########
pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java:
##########
@@ -636,7 +643,7 @@ private void setUpPinotController() {
         _helixResourceManager, _config);
 
     _diskUtilizationChecker = new 
DiskUtilizationChecker(_helixResourceManager, _config);

Review Comment:
   You may change this to local variable, and remove the binding to 
DiskUtilizationChecker. That is legacy code, and is replaced with 
`ResourceUtilizationManager`



##########
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
   public static final String ENABLE_RESOURCE_UTILIZATION_CHECK = 
"controller.enable.resource.utilization.check";
+  // Explicitly enables all resource utilization checkers
+  public static final String ENABLE_ALL_RESOURCE_UTILIZATION_CHECKERS =
+      "controller.enable.resource.utilization.checkers.all";
+  // If controller.enable.resource.utilization.checkers.all = false, each 
individual utilization checker can be enabled.
+  // When a new resource utilization checker is added, a new config must be 
added to have the option to specifically
+  // enable/disable it.
+  public static final String ENABLE_DISK_UTILIZATION_CHECKER =
+      "controller.enable.resource.utilization.checkers.disk";

Review Comment:
   ```suggestion
         "controller.enable.disk.utilization.checker";
   ```



##########
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
   public static final String ENABLE_RESOURCE_UTILIZATION_CHECK = 
"controller.enable.resource.utilization.check";
+  // Explicitly enables all resource utilization checkers
+  public static final String ENABLE_ALL_RESOURCE_UTILIZATION_CHECKERS =
+      "controller.enable.resource.utilization.checkers.all";

Review Comment:
   ```suggestion
         "controller.enable.all.resource.utilization.checkers";
   ```



##########
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:
   Don't modify this method because it is used to plug-in checker. You can add 
the check underlying before constructing `DiskUtilizationChecker`



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