You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/11/29 01:23:38 UTC

[iotdb] 01/01: [IOTDB-5045] fix delete database, wal and tsfile still left

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

haonan pushed a commit to branch IOTDB-5045
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 97fec340cc9a67ac16cd746b98e50fbd3a61cecb
Author: HTHou <hh...@outlook.com>
AuthorDate: Tue Nov 29 09:23:19 2022 +0800

    [IOTDB-5045] fix delete database, wal and tsfile still left
---
 server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java      | 2 +-
 .../src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java   | 2 +-
 .../java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java    | 6 ++++++
 3 files changed, 8 insertions(+), 2 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 a55c11bec9..972dedb22a 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
@@ -176,7 +176,7 @@ public class IoTDBConfig {
 
   // region Write Ahead Log Configuration
   /** Write mode of wal */
-  private volatile WALMode walMode = WALMode.ASYNC;
+  private volatile WALMode walMode = WALMode.DISABLE;
 
   /** Max number of wal nodes, each node corresponds to one wal directory */
   private int maxWalNodesNum = 0;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
index 17be5981cb..e5aa77d06b 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
@@ -644,6 +644,7 @@ public class StorageEngineV2 implements IService {
     DataRegion region =
         deletingDataRegionMap.computeIfAbsent(regionId, k -> dataRegionMap.remove(regionId));
     if (region != null) {
+      region.markDeleted();
       try {
         region.abortCompaction();
         region.syncDeleteDataFiles();
@@ -665,7 +666,6 @@ public class StorageEngineV2 implements IService {
             e);
       } finally {
         deletingDataRegionMap.remove(regionId);
-        region.markDeleted();
       }
     }
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
index 80d38b4ca1..d8d5cc4a43 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
@@ -883,6 +883,9 @@ public class DataRegion {
     }
     writeLock("InsertRow");
     try {
+      if (deleted) {
+        return;
+      }
       // init map
       long timePartitionId = StorageEngineV2.getTimePartition(insertRowNode.getTime());
 
@@ -3057,6 +3060,9 @@ public class DataRegion {
     }
     writeLock("InsertRowsOfOneDevice");
     try {
+      if (deleted) {
+        return;
+      }
       boolean isSequence = false;
       for (int i = 0; i < insertRowsOfOneDeviceNode.getInsertRowNodeList().size(); i++) {
         InsertRowNode insertRowNode = insertRowsOfOneDeviceNode.getInsertRowNodeList().get(i);