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
*