You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by lt...@apache.org on 2020/03/18 01:25:14 UTC

[incubator-iotdb] 01/02: handle delete sg

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

lta pushed a commit to branch fix_add_duplicated_metadata_bug
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 4f2801ac1ed057addf8e17224bbddcb2d15796ac
Author: lta <li...@163.com>
AuthorDate: Wed Mar 18 09:19:29 2020 +0800

    handle delete sg
---
 .../org/apache/iotdb/db/metadata/MManager.java     | 33 ++++++++++------------
 1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index 94a382f..31d34d5 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -160,7 +160,7 @@ public class MManager {
     initialized = true;
   }
 
-  private void initFromLog(File logFile) throws IOException, MetadataException {
+  private void initFromLog(File logFile) throws IOException {
     // init the metadata from the operation log
     mtree = new MTree();
     if (logFile.exists()) {
@@ -168,7 +168,11 @@ public class MManager {
           BufferedReader br = new BufferedReader(fr)) {
         String cmd;
         while ((cmd = br.readLine()) != null) {
-          operation(cmd);
+          try {
+            operation(cmd);
+          } catch (MetadataException exception) {
+            logger.error("Can not operate cmd {}", cmd);
+          }
         }
       }
     }
@@ -481,23 +485,16 @@ public class MManager {
   public void deleteStorageGroups(List<String> storageGroups) throws MetadataException {
     lock.writeLock().lock();
     try {
-      if (writeToLog) {
-        StringBuilder jointPath = new StringBuilder();
-        for (String storagePath : storageGroups) {
-          jointPath.append(",").append(storagePath);
-        }
-        BufferedWriter writer = getLogWriter();
-        writer.write(MetadataOperationType.DELETE_STORAGE_GROUP + jointPath);
-        writer.newLine();
-        writer.flush();
-      }
+      BufferedWriter writer = getLogWriter();
       for (String storageGroup : storageGroups) {
-        try {
-          // try to delete storage group
-          mtree.deleteStorageGroup(storageGroup);
-        } catch (MetadataException e) {
-          IoTDBConfigDynamicAdapter.getInstance().addOrDeleteStorageGroup(1);
-          throw new MetadataException(e);
+        // try to delete storage group
+        mtree.deleteStorageGroup(storageGroup);
+
+        // if success
+        if (writeToLog) {
+          writer.write(MetadataOperationType.DELETE_STORAGE_GROUP + storageGroup);
+          writer.newLine();
+          writer.flush();
         }
         mNodeCache.clear();
         IoTDBConfigDynamicAdapter.getInstance().addOrDeleteStorageGroup(-1);