kerneltime commented on code in PR #3532:
URL: https://github.com/apache/ozone/pull/3532#discussion_r908798413


##########
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeInfo.java:
##########
@@ -134,25 +135,45 @@ public VolumeInfo build() throws IOException {
   }
 
   private long getReserved(ConfigurationSource conf) {
+    final float defaultValue = Float.MAX_VALUE;
+    float percentage = conf.getFloat(HDDS_DATANODE_VOLUME_RESERVED,
+        defaultValue);
     Collection<String> reserveList = conf.getTrimmedStringCollection(
         HDDS_DATANODE_DIR_DU_RESERVED);
-    for (String reserve : reserveList) {
-      String[] words = reserve.split(":");
-      if (words.length < 2) {
-        LOG.error("Reserved space should config in pair, but current is {}",
-            reserve);
-        continue;
-      }
+    //Both the configs are set. Log it and return 0
+    if (reserveList.size() > 0 && percentage != defaultValue) {
+      LOG.error("Both {} and {} are set. Set either one, not both. " +
+          "Setting reserved to 0.", HDDS_DATANODE_VOLUME_RESERVED,
+          HDDS_DATANODE_DIR_DU_RESERVED);
+      return 0;

Review Comment:
   I agree, preferring per volume over percentage would be nice. It is better 
to underutilize the disk due to the customer setting up reserved space 
incorrectly than to use up space that then needs to be moved away.



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