You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by zy...@apache.org on 2023/05/03 11:13:06 UTC

[iotdb] branch master updated: [IOTDB-5831] Fix drop database won't delete totally files in disk during data insertion (#9754)

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

zyk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new dbd1f93dd6a [IOTDB-5831] Fix drop database won't delete totally files in disk during data insertion (#9754)
dbd1f93dd6a is described below

commit dbd1f93dd6a57f8479e311df9796e6606f20ae1a
Author: Marcos_Zyk <38...@users.noreply.github.com>
AuthorDate: Wed May 3 19:12:57 2023 +0800

    [IOTDB-5831] Fix drop database won't delete totally files in disk during data insertion (#9754)
---
 .../org/apache/iotdb/confignode/manager/ClusterSchemaManager.java  | 7 +++++++
 .../iotdb/confignode/manager/partition/PartitionManager.java       | 4 ++++
 .../iotdb/confignode/persistence/partition/PartitionInfo.java      | 5 +++++
 3 files changed, 16 insertions(+)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
index 1c1921f41d6..f2212337fc7 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
@@ -125,6 +125,13 @@ public class ClusterSchemaManager {
           illegalPathException.getErrorCode(), illegalPathException.getMessage());
     }
 
+    if (getPartitionManager().isDatabasePreDeleted(databaseSchemaPlan.getSchema().getName())) {
+      return RpcUtils.getStatus(
+          TSStatusCode.METADATA_ERROR,
+          String.format(
+              "Some other task is deleting database %s", databaseSchemaPlan.getSchema().getName()));
+    }
+
     try {
       clusterSchemaInfo.isDatabaseNameValid(databaseSchemaPlan.getSchema().getName());
     } catch (MetadataException metadataException) {
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/PartitionManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/PartitionManager.java
index 60dcb30007e..0e50dc720d2 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/PartitionManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/PartitionManager.java
@@ -765,6 +765,10 @@ public class PartitionManager {
     getConsensusManager().write(preDeleteDatabasePlan);
   }
 
+  public boolean isDatabasePreDeleted(String database) {
+    return partitionInfo.isDatabasePreDeleted(database);
+  }
+
   /**
    * Get TSeriesPartitionSlot
    *
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
index 8dc940670ab..13b6260fea7 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
@@ -263,6 +263,11 @@ public class PartitionInfo implements SnapshotProcessor {
     return new TSStatus(TSStatusCode.SUCCESS_STATUS.getStatusCode());
   }
 
+  public boolean isDatabasePreDeleted(String database) {
+    DatabasePartitionTable databasePartitionTable = databasePartitionTables.get(database);
+    return databasePartitionTable != null && !databasePartitionTable.isNotPreDeleted();
+  }
+
   /**
    * Thread-safely delete StorageGroup
    *