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
}