This is an automated email from the ASF dual-hosted git repository.
tanxinyu 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 0df3700054b add allow compaction check when inner space compaction
task after start (#12494)
0df3700054b is described below
commit 0df3700054b3989ce7ca47fbb9159d0763a22e9a
Author: shuwenwei <[email protected]>
AuthorDate: Sat May 11 17:33:41 2024 +0800
add allow compaction check when inner space compaction task after start
(#12494)
---
.../compaction/execute/task/AbstractCompactionTask.java | 8 +++++++-
.../compaction/execute/task/InnerSpaceCompactionTask.java | 3 +++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/AbstractCompactionTask.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/AbstractCompactionTask.java
index a9d599d5d6d..ae252836a45 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/AbstractCompactionTask.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/AbstractCompactionTask.java
@@ -168,7 +168,8 @@ public abstract class AbstractCompactionTask {
}
} else if (e instanceof InterruptedException
|| Thread.interrupted()
- || e instanceof StopReadTsFileByInterruptException) {
+ || e instanceof StopReadTsFileByInterruptException
+ || !tsFileManager.isAllowCompaction()) {
logger.warn("{}-{} [Compaction] Compaction interrupted",
storageGroupName, dataRegionId);
Thread.currentThread().interrupt();
} else {
@@ -315,6 +316,11 @@ public abstract class AbstractCompactionTask {
}
protected void handleRecoverException(Exception e) {
+ // all files in this data region may be deleted directly without acquire
lock or transfer
+ // TsFileResourceStatus
+ if (!tsFileManager.isAllowCompaction()) {
+ return;
+ }
LOGGER.error(
"{} [Compaction][Recover] Failed to recover compaction. TaskInfo: {},
Exception: {}",
dataRegionId,
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/InnerSpaceCompactionTask.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/InnerSpaceCompactionTask.java
index d0bcbfad439..e4c55b8addf 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/InnerSpaceCompactionTask.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/InnerSpaceCompactionTask.java
@@ -166,6 +166,9 @@ public class InnerSpaceCompactionTask extends
AbstractCompactionTask {
@Override
@SuppressWarnings({"squid:S6541", "squid:S3776", "squid:S2142"})
protected boolean doCompaction() {
+ if (!tsFileManager.isAllowCompaction()) {
+ return true;
+ }
long startTime = System.currentTimeMillis();
// get resource of target file
recoverMemoryStatus = true;