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

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


The following commit(s) were added to refs/heads/tiered_storage by this push:
     new b0450c6dda3 fix data dir params
b0450c6dda3 is described below

commit b0450c6dda32a4f5413eb3b6d8cffb6f8a8da7ea
Author: HeimingZ <[email protected]>
AuthorDate: Tue May 23 10:45:20 2023 +0800

    fix data dir params
---
 .../apache/iotdb/commons/conf/IoTDBConstant.java    |  2 ++
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java  | 21 +++++++++------------
 .../iotdb/db/conf/directories/TierManager.java      | 11 ++++++++++-
 .../db/engine/migration/RemoteMigrationTask.java    | 12 ++++++------
 .../java/org/apache/iotdb/db/service/DataNode.java  |  2 ++
 5 files changed, 29 insertions(+), 19 deletions(-)

diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java 
b/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index ebd354a229e..4763c6f08e6 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -330,4 +330,6 @@ public class IoTDBConstant {
   public static final int MAX_DATABASE_NAME_LENGTH = 64;
 
   public static final String TIER_SEPARATOR = ";";
+
+  public static final String OBJECT_STORAGE_DIR = "object_storage";
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 1b042e42b25..e249ff7b2de 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -1218,18 +1218,15 @@ public class IoTDBConfig {
   private void formulateDataDirs(String[][] tierDataDirs) {
     for (int i = 0; i < tierDataDirs.length; i++) {
       for (int j = 0; j < tierDataDirs[i].length; j++) {
-        if (tierDataDirs[i][j].equals("object_storage")) {
-          tierDataDirs[i][j] = FSUtils.getOSDefaultPath(objectStorageBucket, 
dataNodeId);
-        } else {
-          switch (FSUtils.getFSType(tierDataDirs[i][j])) {
-            case HDFS:
-              tierDataDirs[i][j] = getHdfsDir() + File.separatorChar + 
tierDataDirs[i][j];
-              break;
-            case LOCAL:
-            default:
-              tierDataDirs[i][j] = addDataHomeDir(tierDataDirs[i][j]);
-              break;
-          }
+        switch (FSUtils.getFSType(tierDataDirs[i][j])) {
+          case HDFS:
+            tierDataDirs[i][j] = getHdfsDir() + File.separatorChar + 
tierDataDirs[i][j];
+            break;
+          case LOCAL:
+            tierDataDirs[i][j] = addDataHomeDir(tierDataDirs[i][j]);
+          case OBJECT_STORAGE:
+          default:
+            break;
         }
       }
     }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/conf/directories/TierManager.java 
b/server/src/main/java/org/apache/iotdb/db/conf/directories/TierManager.java
index 027c3e35971..e0483be0558 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/TierManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/TierManager.java
@@ -47,6 +47,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import static org.apache.iotdb.commons.conf.IoTDBConstant.OBJECT_STORAGE_DIR;
+
 /** The main class of multiple directories. Used to allocate folders to data 
files. */
 public class TierManager {
   private static final Logger logger = 
LoggerFactory.getLogger(TierManager.class);
@@ -86,10 +88,17 @@ public class TierManager {
   }
 
   public void resetFolders() {
+    if (config.getDataNodeId() == -1) {
+      return;
+    }
+
     String[][] tierDirs = config.getTierDataDirs();
     for (int i = 0; i < tierDirs.length; ++i) {
       for (int j = 0; j < tierDirs[i].length; ++j) {
-        if (FSUtils.isLocal(tierDirs[i][j])) {
+        if (tierDirs[i][j].equals(OBJECT_STORAGE_DIR)) {
+          tierDirs[i][j] =
+              FSUtils.getOSDefaultPath(config.getObjectStorageBucket(), 
config.getDataNodeId());
+        } else if (FSUtils.isLocal(tierDirs[i][j])) {
           try {
             tierDirs[i][j] = new File(tierDirs[i][j]).getCanonicalPath();
           } catch (IOException e) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java
index 18136da0c46..aeb5cda61bd 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java
@@ -48,12 +48,12 @@ public class RemoteMigrationTask extends MigrationTask {
       tsFile.readUnlock();
     }
     // replace TsFile path
-    tsFile.writeLock();
-    try {
-      tsFile.setFile(destTsFile);
-    } finally {
-      tsFile.writeUnlock();
-    }
+    //    tsFile.writeLock();
+    //    try {
+    //      tsFile.setFile(destTsFile);
+    //    } finally {
+    //      tsFile.writeUnlock();
+    //    }
     // clear src files
     srcTsFile.delete();
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java 
b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
index 39d53476036..9c90bc94304 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
@@ -59,6 +59,7 @@ import org.apache.iotdb.db.conf.DataNodeStartupCheck;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.IoTDBStartCheck;
+import org.apache.iotdb.db.conf.directories.TierManager;
 import org.apache.iotdb.db.conf.rest.IoTDBRestServiceDescriptor;
 import org.apache.iotdb.db.consensus.DataRegionConsensusImpl;
 import org.apache.iotdb.db.consensus.SchemaRegionConsensusImpl;
@@ -411,6 +412,7 @@ public class DataNode implements DataNodeMBean {
   }
 
   private void configOSStorage(int dataNodeID) {
+    TierManager.getInstance().resetFolders();
     FSFactoryProducer.setFileInputFactory(new 
HybridFileInputFactoryDecorator(dataNodeID));
     // recover OS cache
   }

Reply via email to