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