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

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


The following commit(s) were added to refs/heads/master by this push:
     new 67f96c5706 [IOTDB-4533] delete an unexpected folder is added  (#7470)
67f96c5706 is described below

commit 67f96c5706b617c9e6f06383818cc5286c0969fd
Author: yschengzi <[email protected]>
AuthorDate: Thu Sep 29 11:31:47 2022 +0800

    [IOTDB-4533] delete an unexpected folder is added  (#7470)
---
 .../iotdb/db/engine/load/LoadTsFileManager.java    | 35 ++++++++++++++--------
 1 file changed, 23 insertions(+), 12 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/load/LoadTsFileManager.java 
b/server/src/main/java/org/apache/iotdb/db/engine/load/LoadTsFileManager.java
index 48be7a395e..e9d72488a9 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/load/LoadTsFileManager.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/load/LoadTsFileManager.java
@@ -44,6 +44,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.locks.ReentrantLock;
 
 /**
@@ -58,26 +59,19 @@ public class LoadTsFileManager {
 
   private final File loadDir;
 
-  private Map<String, TsFileWriterManager> uuid2WriterManager;
-  private Map<String, Integer> dataPartition2NextTsFileIndex;
+  private final Map<String, TsFileWriterManager> uuid2WriterManager;
+  private final Map<String, Integer> dataPartition2NextTsFileIndex;
 
   private final ReentrantLock lock;
 
   public LoadTsFileManager() {
     this.loadDir = 
SystemFileFactory.INSTANCE.getFile(config.getLoadTsFileDir());
-    this.uuid2WriterManager = new HashMap<>();
+    this.uuid2WriterManager = new ConcurrentHashMap<>();
     this.dataPartition2NextTsFileIndex = new HashMap<>();
     this.lock = new ReentrantLock();
 
-    clearDir(loadDir);
-  }
-
-  private void clearDir(File dir) {
-    if (dir.delete()) {
-      logger.info(String.format("Delete origin load TsFile dir %s.", 
dir.getPath()));
-    }
-    if (!dir.mkdirs()) {
-      logger.warn(String.format("load TsFile dir %s can not be created.", 
dir.getPath()));
+    if (loadDir.delete()) {
+      logger.info(String.format("Delete origin load TsFile dir %s.", 
loadDir.getPath()));
     }
   }
 
@@ -99,6 +93,7 @@ public class LoadTsFileManager {
     uuid2WriterManager.get(uuid).loadAll();
     uuid2WriterManager.get(uuid).close();
     uuid2WriterManager.remove(uuid);
+    clean();
     return true;
   }
 
@@ -108,6 +103,7 @@ public class LoadTsFileManager {
     }
     uuid2WriterManager.get(uuid).close();
     uuid2WriterManager.remove(uuid);
+    clean();
     return true;
   }
 
@@ -125,6 +121,12 @@ public class LoadTsFileManager {
     }
   }
 
+  private void clean() {
+    if (loadDir.delete()) { // this method will check if there sub-dir in this 
dir.
+      logger.info(String.format("Delete load dir %s.", loadDir.getPath()));
+    }
+  }
+
   private class TsFileWriterManager {
     private final File taskDir;
     private Map<DataPartitionInfo, TsFileIOWriter> dataPartition2Writer;
@@ -138,6 +140,15 @@ public class LoadTsFileManager {
       clearDir(taskDir);
     }
 
+    private void clearDir(File dir) {
+      if (dir.delete()) {
+        logger.info(String.format("Delete origin load TsFile dir %s.", 
dir.getPath()));
+      }
+      if (!dir.mkdirs()) {
+        logger.warn(String.format("load TsFile dir %s can not be created.", 
dir.getPath()));
+      }
+    }
+
     private void write(DataPartitionInfo partitionInfo, ChunkData chunkData) 
throws IOException {
       if (!dataPartition2Writer.containsKey(partitionInfo)) {
         File newTsFile =

Reply via email to