You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xu...@apache.org on 2020/12/01 13:11:12 UTC
[iotdb] branch virtual_partition updated: refactor
This is an automated email from the ASF dual-hosted git repository.
xuekaifeng pushed a commit to branch virtual_partition
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/virtual_partition by this push:
new d591d28 refactor
d591d28 is described below
commit d591d28821194ba0b77b292510a8307cb89bca3f
Author: 151250176 <15...@smail.nju.edu.cn>
AuthorDate: Tue Dec 1 21:10:44 2020 +0800
refactor
---
.../java/org/apache/iotdb/db/engine/StorageEngine.java | 16 +++++++++++-----
.../storagegroup/virtualSg/HashVirtualPartitioner.java | 5 ++---
.../storagegroup/virtualSg/VirtualPartitioner.java | 2 ++
.../java/org/apache/iotdb/db/utils/EnvironmentUtils.java | 4 ++++
4 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
index ae0e415..88110f8 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
@@ -146,7 +146,13 @@ public class StorageEngine implements IService {
// recover upgrade process
UpgradeUtils.recoverUpgrade();
- partitioner = HashVirtualPartitioner.getInstance();
+ if(config.isEnableVirtualPartition()){
+ partitioner = HashVirtualPartitioner.getInstance();
+ }
+ else{
+ partitioner = null;
+ }
+
recover();
}
@@ -223,7 +229,7 @@ public class StorageEngine implements IService {
* recover all storage group processors.
*/
List<Future<Void>> futures = new ArrayList<>();
- if (!IoTDBDescriptor.getInstance().getConfig().isEnableVirtualPartition()) {
+ if (!config.isEnableVirtualPartition()) {
recoverStorageGroupProcessor(futures);
} else {
recoverVirtualStorageGroupProcessor(futures);
@@ -405,7 +411,7 @@ public class StorageEngine implements IService {
PartialPath storageGroupPath;
try {
StorageGroupMNode storageGroupMNode = IoTDB.metaManager.getStorageGroupNodeByPath(path);
- if (IoTDBDescriptor.getInstance().getConfig().isEnableVirtualPartition()) {
+ if (config.isEnableVirtualPartition()) {
storageGroupPath = partitioner.deviceToStorageGroup(path);
} else {
storageGroupPath = storageGroupMNode.getPartialPath();
@@ -612,7 +618,7 @@ public class StorageEngine implements IService {
public void delete(PartialPath path, long startTime, long endTime, long planIndex)
throws StorageEngineException {
try {
- if (IoTDBDescriptor.getInstance().getConfig().isEnableVirtualPartition()) {
+ if (config.isEnableVirtualPartition()) {
// Distribute the request to all sg, this can be improved in future
for (StorageGroupProcessor storageGroupProcessor : processorMap.values()) {
storageGroupProcessor.delete(path, startTime, endTime, planIndex);
@@ -636,7 +642,7 @@ public class StorageEngine implements IService {
public void deleteTimeseries(PartialPath path, long planIndex)
throws StorageEngineException {
try {
- if (IoTDBDescriptor.getInstance().getConfig().isEnableVirtualPartition()) {
+ if (config.isEnableVirtualPartition()) {
// Distribute the request to all sg, this can be improved in future
for (StorageGroupProcessor storageGroupProcessor : processorMap.values()) {
storageGroupProcessor.delete(path, Long.MIN_VALUE, Long.MAX_VALUE, planIndex);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/HashVirtualPartitioner.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/HashVirtualPartitioner.java
index 8f68ec9..9934773 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/HashVirtualPartitioner.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/HashVirtualPartitioner.java
@@ -49,8 +49,6 @@ public class HashVirtualPartitioner implements VirtualPartitioner {
}
recover();
-
- writer = new VirtualPartitionerWriter();
}
public static HashVirtualPartitioner getInstance() {
@@ -92,7 +90,6 @@ public class HashVirtualPartitioner implements VirtualPartitioner {
sgToDevice[i] = new HashSet<>();
}
writer.clear();
- writer = new VirtualPartitionerWriter();
}
@Override
@@ -124,6 +121,8 @@ public class HashVirtualPartitioner implements VirtualPartitioner {
mapping = reader.readMapping();
}
+
+ writer = new VirtualPartitionerWriter();
}
private int toStorageGroupId(PartialPath deviceId) {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/VirtualPartitioner.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/VirtualPartitioner.java
index 13411c1..35fb651 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/VirtualPartitioner.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/VirtualPartitioner.java
@@ -50,4 +50,6 @@ public interface VirtualPartitioner {
* @return total number of virtual storage group
*/
public int getPartitionCount();
+
+ public void recover();
}
diff --git a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
index e41617b..241c36b 100644
--- a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
@@ -246,6 +246,7 @@ public class EnvironmentUtils {
config.setEnableStatMonitor(false);
TEST_QUERY_JOB_ID = QueryResourceManager.getInstance().assignQueryId(true, 1024, 0);
TEST_QUERY_CONTEXT = new QueryContext(TEST_QUERY_JOB_ID);
+ HashVirtualPartitioner.getInstance().recover();
}
public static void stopDaemon() {
@@ -292,6 +293,9 @@ public class EnvironmentUtils {
}
// create storage group
createDir(config.getSystemDir());
+ // create sg dir
+ String sgDir = FilePathUtils.regularizePath(config.getSystemDir()) + "storage_groups";
+ createDir(sgDir);
// create wal
createDir(config.getWalDir());
// create query