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;

Reply via email to