You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/11/29 02:58:27 UTC
[iotdb] branch rel/1.0 updated: [To rel/1.0][IOTDB-5045] fix delete database, wal and tsfile still left (#8234)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.0 by this push:
new b263e7c228 [To rel/1.0][IOTDB-5045] fix delete database, wal and tsfile still left (#8234)
b263e7c228 is described below
commit b263e7c22895490abb1f463074a8f9d59ecf3f1d
Author: Haonan <hh...@outlook.com>
AuthorDate: Tue Nov 29 10:58:22 2022 +0800
[To rel/1.0][IOTDB-5045] fix delete database, wal and tsfile still left (#8234)
---
.../main/java/org/apache/iotdb/db/engine/StorageEngineV2.java | 2 +-
.../org/apache/iotdb/db/engine/storagegroup/DataRegion.java | 11 ++++++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
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..7c63f1f346 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());
@@ -929,6 +932,9 @@ public class DataRegion {
}
writeLock("insertTablet");
try {
+ if (deleted) {
+ return;
+ }
TSStatus[] results = new TSStatus[insertTabletNode.getRowCount()];
Arrays.fill(results, RpcUtils.SUCCESS_STATUS);
boolean noFailure = true;
@@ -3057,6 +3063,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);
@@ -3337,9 +3346,9 @@ public class DataRegion {
/** Release all threads waiting for this data region successfully deleted */
public void markDeleted() {
- deleted = true;
writeLock("markDeleted");
try {
+ deleted = true;
deletedCondition.signalAll();
} finally {
writeUnlock();