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

xingtanzjr pushed a commit to branch multi_dir_change_to_seq
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/multi_dir_change_to_seq by 
this push:
     new f798dd1035 change hasSpace judgement to ratio
f798dd1035 is described below

commit f798dd103549b85a8807d9425d3b19a6c35814f0
Author: Jinrui.Zhang <[email protected]>
AuthorDate: Wed Apr 26 18:55:53 2023 +0800

    change hasSpace judgement to ratio
---
 .../java/org/apache/iotdb/commons/utils/JVMCommonUtils.java | 13 +++++++++++--
 .../db/conf/directories/strategy/SequenceStrategy.java      |  1 +
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/utils/JVMCommonUtils.java 
b/node-commons/src/main/java/org/apache/iotdb/commons/utils/JVMCommonUtils.java
index aa84965997..4add837b9f 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/utils/JVMCommonUtils.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/utils/JVMCommonUtils.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.commons.utils;
 
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
 
 import java.io.File;
@@ -34,6 +35,9 @@ public class JVMCommonUtils {
 
   private static final int CPUS = Runtime.getRuntime().availableProcessors();
 
+  private static final double diskSpaceWarningThreshold =
+      
CommonDescriptor.getInstance().getConfig().getDiskSpaceWarningThreshold();
+
   /**
    * get JDK version.
    *
@@ -60,9 +64,14 @@ public class JVMCommonUtils {
     return dirFile.getFreeSpace();
   }
 
+  public static double getDiskFreeRatio(String dir) {
+    File dirFile = FSFactoryProducer.getFSFactory().getFile(dir);
+    dirFile.mkdirs();
+    return 1.0 * dirFile.getFreeSpace() / dirFile.getTotalSpace();
+  }
+
   public static boolean hasSpace(String dir) {
-    // TODO: use ratio to judgement ?
-    return getUsableSpace(dir) > 0;
+    return getDiskFreeRatio(dir) > diskSpaceWarningThreshold;
   }
 
   public static long getOccupiedSpace(String folderPath) throws IOException {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/SequenceStrategy.java
 
b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/SequenceStrategy.java
index 4d305fd7b1..717b7c847b 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/SequenceStrategy.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/SequenceStrategy.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.conf.directories.strategy;
 
+import com.sun.media.jfxmedia.logging.Logger;
 import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
 

Reply via email to