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

bensonchou 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 14048939836 Fix some problems of FastCompactionPerformer (#11743)
14048939836 is described below

commit 14048939836448b8abf9ee2b46f2cdfc1a04d1a8
Author: shuwenwei <[email protected]>
AuthorDate: Mon Dec 18 21:59:54 2023 +0800

    Fix some problems of FastCompactionPerformer (#11743)
    
    * skip seal page if can not flush
    
    * fix metric bug
---
 .../execute/utils/writer/AbstractInnerCompactionWriter.java       | 6 ++++--
 .../execute/utils/writer/FastInnerCompactionWriter.java           | 8 --------
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/AbstractInnerCompactionWriter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/AbstractInnerCompactionWriter.java
index f697415cca6..44144fe2cd0 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/AbstractInnerCompactionWriter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/AbstractInnerCompactionWriter.java
@@ -51,13 +51,15 @@ public abstract class AbstractInnerCompactionWriter extends 
AbstractCompactionWr
                 / 
IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount()
                 * 
IoTDBDescriptor.getInstance().getConfig().getChunkMetadataSizeProportion());
     boolean enableMemoryControl = 
IoTDBDescriptor.getInstance().getConfig().isEnableMemControl();
+    this.targetResource = targetFileResource;
     this.fileWriter =
         new CompactionTsFileWriter(
             targetFileResource.getTsFile(),
             enableMemoryControl,
             sizeForFileWriter,
-            CompactionType.INNER_UNSEQ_COMPACTION);
-    this.targetResource = targetFileResource;
+            targetResource.isSeq()
+                ? CompactionType.INNER_SEQ_COMPACTION
+                : CompactionType.INNER_UNSEQ_COMPACTION);
     isEmptyFile = true;
   }
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/FastInnerCompactionWriter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/FastInnerCompactionWriter.java
index 2fb6db7aaca..45ef004315d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/FastInnerCompactionWriter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/FastInnerCompactionWriter.java
@@ -128,10 +128,6 @@ public class FastInnerCompactionWriter extends 
AbstractInnerCompactionWriter {
     boolean isUnsealedPageOverThreshold =
         chunkWriters[subTaskId].checkIsUnsealedPageOverThreshold(
             pageSizeLowerBoundInCompaction, 
pagePointNumLowerBoundInCompaction, true);
-    if (isUnsealedPageOverThreshold) {
-      // seal page
-      chunkWriters[subTaskId].sealCurrentPage();
-    }
     if (!isUnsealedPageOverThreshold
         || !checkIsAlignedPageLargeEnough(timePageHeader, valuePageHeaders)) {
       // there is unsealed page or current page is not large enough , then 
deserialize the page
@@ -164,10 +160,6 @@ public class FastInnerCompactionWriter extends 
AbstractInnerCompactionWriter {
     boolean isUnsealedPageOverThreshold =
         chunkWriters[subTaskId].checkIsUnsealedPageOverThreshold(
             pageSizeLowerBoundInCompaction, 
pagePointNumLowerBoundInCompaction, true);
-    if (isUnsealedPageOverThreshold) {
-      // seal page
-      chunkWriters[subTaskId].sealCurrentPage();
-    }
     if (!isUnsealedPageOverThreshold || !checkIsPageLargeEnough(pageHeader)) {
       // there is unsealed page or current page is not large enough , then 
deserialize the page
       return false;

Reply via email to