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 0819828ee7a support hot modify data_dirs
0819828ee7a is described below
commit 0819828ee7a174b49e2e0c28b36054d3f07686c8
Author: HeimingZ <[email protected]>
AuthorDate: Mon May 29 17:21:48 2023 +0800
support hot modify data_dirs
---
server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 2 --
.../src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java | 8 ++++----
.../java/org/apache/iotdb/db/conf/directories/TierManager.java | 2 +-
3 files changed, 5 insertions(+), 7 deletions(-)
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 120c3805dbc..56335e03c2e 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
@@ -25,7 +25,6 @@ import org.apache.iotdb.commons.utils.TestOnly;
import org.apache.iotdb.consensus.ConsensusFactory;
import org.apache.iotdb.db.audit.AuditLogOperation;
import org.apache.iotdb.db.audit.AuditLogStorage;
-import org.apache.iotdb.db.conf.directories.TierManager;
import
org.apache.iotdb.db.engine.compaction.execute.performer.constant.CrossCompactionPerformer;
import
org.apache.iotdb.db.engine.compaction.execute.performer.constant.InnerSeqCompactionPerformer;
import
org.apache.iotdb.db.engine.compaction.execute.performer.constant.InnerUnseqCompactionPerformer;
@@ -1324,7 +1323,6 @@ public class IoTDBConfig {
}
}
this.tierDataDirs = tierDataDirs;
- TierManager.getInstance().resetFolders();
}
// if IOTDB_DATA_HOME is not set, then we keep dataHomeDir prefix being the
same with IOTDB_HOME
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index f998f8b3eec..3c67feff6c7 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -27,6 +27,7 @@ import org.apache.iotdb.commons.utils.NodeUrlUtils;
import org.apache.iotdb.confignode.rpc.thrift.TCQConfig;
import org.apache.iotdb.confignode.rpc.thrift.TGlobalConfig;
import org.apache.iotdb.confignode.rpc.thrift.TRatisConfig;
+import org.apache.iotdb.db.conf.directories.TierManager;
import org.apache.iotdb.db.engine.StorageEngine;
import
org.apache.iotdb.db.engine.compaction.execute.performer.constant.CrossCompactionPerformer;
import
org.apache.iotdb.db.engine.compaction.execute.performer.constant.InnerSeqCompactionPerformer;
@@ -1592,22 +1593,21 @@ public class IoTDBDescriptor {
public void loadHotModifiedProps(Properties properties) throws
QueryProcessException {
try {
- /* TODO(zhm) 暂时不支持更新data dirs和DirStrategy
// update data dirs
String dataDirs = properties.getProperty("dn_data_dirs", null);
if (dataDirs != null) {
conf.reloadDataDirs(parseDataDirs(dataDirs));
}
- // update dir strategy, must update after data dirs
+ // update dir strategy
String multiDirStrategyClassName =
properties.getProperty("dn_multi_dir_strategy", null);
if (multiDirStrategyClassName != null
&&
!multiDirStrategyClassName.equals(conf.getMultiDirStrategyClassName())) {
conf.setMultiDirStrategyClassName(multiDirStrategyClassName);
conf.confirmMultiDirStrategy();
- DirectoryManager.getInstance().updateDirectoryStrategy();
}
- */
+
+ TierManager.getInstance().resetFolders();
// update timed flush & close conf
loadTimedService(properties);
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 910ab46bfd4..db69bdb267d 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
@@ -72,7 +72,7 @@ public class TierManager {
private TierManager() {}
- public void resetFolders() {
+ public synchronized void resetFolders() {
if (config.getDataNodeId() == -1) {
return;
}