You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ma...@apache.org on 2023/01/12 13:30:00 UTC

[iotdb] 01/02: add summary for fast performer

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

marklau99 pushed a commit to branch IOTDB-5140
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit aecf6d5d14e0934ddea879abed1388ad7e4b3bcb
Author: Liu Xuxin <li...@outlook.com>
AuthorDate: Thu Jan 12 21:21:20 2023 +0800

    add summary for fast performer
---
 .../performer/impl/FastCompactionPerformer.java    | 23 ++++----
 .../performer/impl/FastCompactionTaskSummary.java  | 24 --------
 .../execute/task/AbstractCompactionTask.java       |  4 +-
 .../execute/task/CompactionTaskSummary.java        | 21 +++----
 .../execute/task/CrossSpaceCompactionTask.java     | 31 +++++-----
 .../execute/task/InnerSpaceCompactionTask.java     | 31 +++++-----
 .../subtask/FastCompactionPerformerSubTask.java    |  6 +-
 ...Summary.java => FastCompactionTaskSummary.java} | 19 +++++-
 .../fast/AlignedSeriesCompactionExecutor.java      |  4 +-
 .../fast/NonAlignedSeriesCompactionExecutor.java   |  4 +-
 .../executor/fast/SeriesCompactionExecutor.java    | 67 +++++++++++++++++++++-
 .../fast/element/ChunkMetadataElement.java         |  3 +
 .../FastCrossCompactionPerformerTest.java          | 48 ++++++++--------
 ...eCompactionWithFastPerformerValidationTest.java |  6 +-
 .../inner/FastCompactionPerformerAlignedTest.java  | 18 +++---
 .../FastCompactionPerformerNoAlignedTest.java      | 20 +++----
 .../InnerSeqCompactionWithFastPerformerTest.java   |  8 +--
 ...nerSeqCompactionWithReadChunkPerformerTest.java |  8 +--
 .../inner/InnerSpaceCompactionExceptionTest.java   | 16 +++---
 .../InnerUnseqCompactionWithFastPerformerTest.java |  4 +-
 .../SizeTieredCompactionRecoverTest.java           | 22 +++----
 .../recover/SizeTieredCompactionRecoverTest.java   | 18 +++---
 22 files changed, 231 insertions(+), 174 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
index 9e5a115a0d..ba306efe05 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
@@ -28,7 +28,7 @@ import org.apache.iotdb.db.engine.compaction.execute.performer.ISeqCompactionPer
 import org.apache.iotdb.db.engine.compaction.execute.performer.IUnseqCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionPerformerSubTask;
-import org.apache.iotdb.db.engine.compaction.execute.task.subtask.SubCompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.execute.utils.MultiTsFileDeviceIterator;
 import org.apache.iotdb.db.engine.compaction.execute.utils.writer.AbstractCompactionWriter;
@@ -75,9 +75,7 @@ public class FastCompactionPerformer
 
   public Map<TsFileResource, TsFileSequenceReader> readerCacheMap = new ConcurrentHashMap<>();
 
-  private CompactionTaskSummary summary;
-
-  private final SubCompactionTaskSummary subTaskSummary = new SubCompactionTaskSummary();
+  private FastCompactionTaskSummary subTaskSummary;
 
   private List<TsFileResource> targetFiles;
 
@@ -192,7 +190,7 @@ public class FastCompactionPerformer
       timeseriesMetadataOffsetMap.put(entry.getKey(), entry.getValue().right);
     }
 
-    SubCompactionTaskSummary taskSummary = new SubCompactionTaskSummary();
+    FastCompactionTaskSummary taskSummary = new FastCompactionTaskSummary();
     new FastCompactionPerformerSubTask(
             fastCrossCompactionWriter,
             timeseriesMetadataOffsetMap,
@@ -234,9 +232,9 @@ public class FastCompactionPerformer
 
     // construct sub tasks and start compacting measurements in parallel
     List<Future<Void>> futures = new ArrayList<>();
-    List<SubCompactionTaskSummary> taskSummaryList = new ArrayList<>();
+    List<FastCompactionTaskSummary> taskSummaryList = new ArrayList<>();
     for (int i = 0; i < subTaskNums; i++) {
-      SubCompactionTaskSummary taskSummary = new SubCompactionTaskSummary();
+      FastCompactionTaskSummary taskSummary = new FastCompactionTaskSummary();
       futures.add(
           CompactionTaskManager.getInstance()
               .submitSubTask(
@@ -272,7 +270,12 @@ public class FastCompactionPerformer
 
   @Override
   public void setSummary(CompactionTaskSummary summary) {
-    this.summary = summary;
+    if (!(summary instanceof FastCompactionTaskSummary)) {
+      throw new RuntimeException(
+          "CompactionTaskSummary for FastCompactionPerformer "
+              + "should be FastCompactionTaskSummary");
+    }
+    this.subTaskSummary = (FastCompactionTaskSummary) summary;
   }
 
   @Override
@@ -282,14 +285,14 @@ public class FastCompactionPerformer
   }
 
   private void checkThreadInterrupted() throws InterruptedException {
-    if (Thread.interrupted() || summary.isCancel()) {
+    if (Thread.interrupted() || subTaskSummary.isCancel()) {
       throw new InterruptedException(
           String.format(
               "[Compaction] compaction for target file %s abort", targetFiles.toString()));
     }
   }
 
-  public SubCompactionTaskSummary getSubTaskSummary() {
+  public FastCompactionTaskSummary getSubTaskSummary() {
     return subTaskSummary;
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionTaskSummary.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionTaskSummary.java
deleted file mode 100644
index f05e89a38c..0000000000
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionTaskSummary.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.apache.iotdb.db.engine.compaction.execute.performer.impl;
-
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
-
-public class FastCompactionTaskSummary extends CompactionTaskSummary {
-  public int CHUNK_NONE_OVERLAP;
-  public int CHUNK_NONE_OVERLAP_BUT_DESERIALIZE;
-  public int CHUNK_OVERLAP_OR_MODIFIED;
-
-  public int PAGE_NONE_OVERLAP;
-  public int PAGE_OVERLAP_OR_MODIFIED;
-  public int PAGE_FAKE_OVERLAP;
-  public int PAGE_NONE_OVERLAP_BUT_DESERIALIZE;
-
-  public void increase(FastCompactionTaskSummary summary) {
-    this.CHUNK_NONE_OVERLAP += summary.CHUNK_NONE_OVERLAP;
-    this.CHUNK_NONE_OVERLAP_BUT_DESERIALIZE += summary.CHUNK_NONE_OVERLAP_BUT_DESERIALIZE;
-    this.CHUNK_OVERLAP_OR_MODIFIED += summary.CHUNK_OVERLAP_OR_MODIFIED;
-    this.PAGE_NONE_OVERLAP += summary.PAGE_NONE_OVERLAP;
-    this.PAGE_OVERLAP_OR_MODIFIED += summary.PAGE_OVERLAP_OR_MODIFIED;
-    this.PAGE_FAKE_OVERLAP += summary.PAGE_FAKE_OVERLAP;
-    this.PAGE_NONE_OVERLAP_BUT_DESERIALIZE += summary.PAGE_NONE_OVERLAP_BUT_DESERIALIZE;
-  }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/AbstractCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/AbstractCompactionTask.java
index c275dc7497..0583811d6e 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/AbstractCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/AbstractCompactionTask.java
@@ -46,7 +46,7 @@ public abstract class AbstractCompactionTask {
   protected final TsFileManager tsFileManager;
   protected ICompactionPerformer performer;
   protected int hashCode = -1;
-  protected CompactionTaskSummary summary = new CompactionTaskSummary();
+  protected CompactionTaskSummary summary;
   protected long serialId;
 
   public AbstractCompactionTask(
@@ -148,4 +148,6 @@ public abstract class AbstractCompactionTask {
   public long getSerialId() {
     return serialId;
   }
+
+  protected abstract void createSummary();
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CompactionTaskSummary.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CompactionTaskSummary.java
index 60f13caf72..db8da24d98 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CompactionTaskSummary.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CompactionTaskSummary.java
@@ -23,15 +23,15 @@ import java.util.Date;
 
 /** The summary of one {@link AbstractCompactionTask} execution */
 public class CompactionTaskSummary {
-  private long timeCost = 0L;
-  private volatile Status status = Status.NOT_STARTED;
-  private long startTime = -1L;
-  private int processChunkNum = 0;
-  private int directlyFlushChunkNum = 0;
-  private int deserializeChunkCount = 0;
-  private int deserializePageCount = 0;
-  private int mergedChunkNum = 0;
-  private long processPointNum = 0;
+  protected long timeCost = 0L;
+  protected volatile Status status = Status.NOT_STARTED;
+  protected long startTime = -1L;
+  protected int processChunkNum = 0;
+  protected int directlyFlushChunkNum = 0;
+  protected int deserializeChunkCount = 0;
+  protected int deserializePageCount = 0;
+  protected int mergedChunkNum = 0;
+  protected long processPointNum = 0;
 
   public CompactionTaskSummary() {}
 
@@ -127,12 +127,13 @@ public class CompactionTaskSummary {
     String startTimeInStr = new SimpleDateFormat().format(new Date(startTime));
     return String.format(
         "Task start time: %s, time cost: %.2f s, total process chunk num: %d, "
-            + "directly flush chunk num: %d, deserialize chunk num: %d, deserialize page num: %d,"
+            + "directly flush chunk num: %d, merge chunk num: %d, deserialize chunk num: %d, deserialize page num: %d,"
             + " total process point num: %d",
         startTimeInStr,
         timeCost / 1000.0d,
         processChunkNum,
         directlyFlushChunkNum,
+        mergedChunkNum,
         deserializeChunkCount,
         deserializePageCount,
         processPointNum);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
index 21401ef335..277ba96843 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
@@ -25,7 +25,7 @@ import org.apache.iotdb.db.engine.TsFileMetricManager;
 import org.apache.iotdb.db.engine.compaction.execute.exception.CompactionExceptionHandler;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICrossCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.subtask.SubCompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.execute.utils.log.CompactionLogger;
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
@@ -86,6 +86,7 @@ public class CrossSpaceCompactionTask extends AbstractCompactionTask {
     this.performer = performer;
     this.hashCode = this.toString().hashCode();
     this.memoryCost = memoryCost;
+    createSummary();
   }
 
   @Override
@@ -190,19 +191,6 @@ public class CrossSpaceCompactionTask extends AbstractCompactionTask {
         if (logFile.exists()) {
           FileUtils.delete(logFile);
         }
-        if (performer instanceof FastCompactionPerformer) {
-          SubCompactionTaskSummary subTaskSummary =
-              ((FastCompactionPerformer) performer).getSubTaskSummary();
-          LOGGER.info(
-              "CHUNK_NONE_OVERLAP num is {}, CHUNK_NONE_OVERLAP_BUT_DESERIALIZE num is {}, CHUNK_OVERLAP_OR_MODIFIED num is {}, PAGE_NONE_OVERLAP num is {}, PAGE_NONE_OVERLAP_BUT_DESERIALIZE num is {}, PAGE_OVERLAP_OR_MODIFIED num is {}, PAGE_FAKE_OVERLAP num is {}.",
-              subTaskSummary.CHUNK_NONE_OVERLAP,
-              subTaskSummary.CHUNK_NONE_OVERLAP_BUT_DESERIALIZE,
-              subTaskSummary.CHUNK_OVERLAP_OR_MODIFIED,
-              subTaskSummary.PAGE_NONE_OVERLAP,
-              subTaskSummary.PAGE_NONE_OVERLAP_BUT_DESERIALIZE,
-              subTaskSummary.PAGE_OVERLAP_OR_MODIFIED,
-              subTaskSummary.PAGE_FAKE_OVERLAP);
-        }
 
         // update the metrics finally in case of any exception occurs
         for (TsFileResource targetResource : targetTsfileResourceList) {
@@ -218,12 +206,14 @@ public class CrossSpaceCompactionTask extends AbstractCompactionTask {
         TsFileMetricManager.getInstance()
             .deleteFile(unsequenceFileSize, false, selectedUnsequenceFiles.size());
         long costTime = (System.currentTimeMillis() - startTime) / 1000;
+
         LOGGER.info(
-            "{}-{} [Compaction] CrossSpaceCompaction task finishes successfully, time cost is {} s, compaction speed is {} MB/s",
+            "{}-{} [Compaction] CrossSpaceCompaction task finishes successfully, time cost is {} s, compaction speed is {} MB/s, {}",
             storageGroupName,
             dataRegionId,
             costTime,
-            (selectedSeqFileSize + selectedUnseqFileSize) / 1024 / 1024 / costTime);
+            (selectedSeqFileSize + selectedUnseqFileSize) / 1024 / 1024 / costTime,
+            summary);
       }
     } catch (Throwable throwable) {
       // catch throwable to handle OOM errors
@@ -379,4 +369,13 @@ public class CrossSpaceCompactionTask extends AbstractCompactionTask {
     }
     return true;
   }
+
+  @Override
+  protected void createSummary() {
+    if (performer instanceof FastCompactionPerformer) {
+      this.summary = new FastCompactionTaskSummary();
+    } else {
+      this.summary = new CompactionTaskSummary();
+    }
+  }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
index b8406abc00..e5f606ffa6 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
@@ -25,7 +25,7 @@ import org.apache.iotdb.db.engine.TsFileMetricManager;
 import org.apache.iotdb.db.engine.compaction.execute.exception.CompactionExceptionHandler;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.subtask.SubCompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.execute.utils.log.CompactionLogger;
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
@@ -95,6 +95,7 @@ public class InnerSpaceCompactionTask extends AbstractCompactionTask {
     }
     this.hashCode = this.toString().hashCode();
     collectSelectedFilesInfo();
+    createSummary();
   }
 
   @Override
@@ -224,20 +225,6 @@ public class InnerSpaceCompactionTask extends AbstractCompactionTask {
       CompactionUtils.deleteModificationForSourceFile(
           selectedTsFileResourceList, storageGroupName + "-" + dataRegionId);
 
-      if (performer instanceof FastCompactionPerformer) {
-        SubCompactionTaskSummary subTaskSummary =
-            ((FastCompactionPerformer) performer).getSubTaskSummary();
-        LOGGER.info(
-            "CHUNK_NONE_OVERLAP num is {}, CHUNK_NONE_OVERLAP_BUT_DESERIALIZE num is {}, CHUNK_OVERLAP_OR_MODIFIED num is {}, PAGE_NONE_OVERLAP num is {}, PAGE_NONE_OVERLAP_BUT_DESERIALIZE num is {}, PAGE_OVERLAP_OR_MODIFIED num is {}, PAGE_FAKE_OVERLAP num is {}.",
-            subTaskSummary.CHUNK_NONE_OVERLAP,
-            subTaskSummary.CHUNK_NONE_OVERLAP_BUT_DESERIALIZE,
-            subTaskSummary.CHUNK_OVERLAP_OR_MODIFIED,
-            subTaskSummary.PAGE_NONE_OVERLAP,
-            subTaskSummary.PAGE_NONE_OVERLAP_BUT_DESERIALIZE,
-            subTaskSummary.PAGE_OVERLAP_OR_MODIFIED,
-            subTaskSummary.PAGE_FAKE_OVERLAP);
-      }
-
       if (logFile.exists()) {
         FileUtils.delete(logFile);
       }
@@ -256,12 +243,13 @@ public class InnerSpaceCompactionTask extends AbstractCompactionTask {
       double costTime = (System.currentTimeMillis() - startTime) / 1000.0d;
       LOGGER.info(
           "{}-{} [Compaction] InnerSpaceCompaction task finishes successfully, target file is {},"
-              + "time cost is {} s, compaction speed is {} MB/s",
+              + "time cost is {} s, compaction speed is {} MB/s, {}",
           storageGroupName,
           dataRegionId,
           targetTsFileResource.getTsFile().getName(),
           costTime,
-          selectedFileSize / 1024.0d / 1024.0d / costTime);
+          selectedFileSize / 1024.0d / 1024.0d / costTime,
+          summary);
     } catch (Throwable throwable) {
       // catch throwable to handle OOM errors
       if (!(throwable instanceof InterruptedException)) {
@@ -452,4 +440,13 @@ public class InnerSpaceCompactionTask extends AbstractCompactionTask {
     }
     return true;
   }
+
+  @Override
+  protected void createSummary() {
+    if (performer instanceof FastCompactionPerformer) {
+      this.summary = new FastCompactionTaskSummary();
+    } else {
+      this.summary = new CompactionTaskSummary();
+    }
+  }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/FastCompactionPerformerSubTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/FastCompactionPerformerSubTask.java
index 44329d43ba..23d249b947 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/FastCompactionPerformerSubTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/FastCompactionPerformerSubTask.java
@@ -37,7 +37,7 @@ import java.util.concurrent.Callable;
 
 public class FastCompactionPerformerSubTask implements Callable<Void> {
 
-  private SubCompactionTaskSummary summary;
+  private FastCompactionTaskSummary summary;
 
   private AbstractCompactionWriter compactionWriter;
 
@@ -73,7 +73,7 @@ public class FastCompactionPerformerSubTask implements Callable<Void> {
       List<TsFileResource> sortedSourceFiles,
       List<String> measurements,
       String deviceId,
-      SubCompactionTaskSummary summary,
+      FastCompactionTaskSummary summary,
       int subTaskId) {
     this.compactionWriter = compactionWriter;
     this.subTaskId = subTaskId;
@@ -96,7 +96,7 @@ public class FastCompactionPerformerSubTask implements Callable<Void> {
       List<TsFileResource> sortedSourceFiles,
       List<IMeasurementSchema> measurementSchemas,
       String deviceId,
-      SubCompactionTaskSummary summary) {
+      FastCompactionTaskSummary summary) {
     this.compactionWriter = compactionWriter;
     this.subTaskId = 0;
     this.timeseriesMetadataOffsetMap = timeseriesMetadataOffsetMap;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/SubCompactionTaskSummary.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/FastCompactionTaskSummary.java
similarity index 67%
rename from server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/SubCompactionTaskSummary.java
rename to server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/FastCompactionTaskSummary.java
index 9cf99530a8..0465c7b467 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/SubCompactionTaskSummary.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/subtask/FastCompactionTaskSummary.java
@@ -18,7 +18,9 @@
  */
 package org.apache.iotdb.db.engine.compaction.execute.task.subtask;
 
-public class SubCompactionTaskSummary {
+import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
+
+public class FastCompactionTaskSummary extends CompactionTaskSummary {
   public int CHUNK_NONE_OVERLAP;
   public int CHUNK_NONE_OVERLAP_BUT_DESERIALIZE;
   public int CHUNK_OVERLAP_OR_MODIFIED;
@@ -28,7 +30,7 @@ public class SubCompactionTaskSummary {
   public int PAGE_FAKE_OVERLAP;
   public int PAGE_NONE_OVERLAP_BUT_DESERIALIZE;
 
-  public void increase(SubCompactionTaskSummary summary) {
+  public void increase(FastCompactionTaskSummary summary) {
     this.CHUNK_NONE_OVERLAP += summary.CHUNK_NONE_OVERLAP;
     this.CHUNK_NONE_OVERLAP_BUT_DESERIALIZE += summary.CHUNK_NONE_OVERLAP_BUT_DESERIALIZE;
     this.CHUNK_OVERLAP_OR_MODIFIED += summary.CHUNK_OVERLAP_OR_MODIFIED;
@@ -37,4 +39,17 @@ public class SubCompactionTaskSummary {
     this.PAGE_FAKE_OVERLAP += summary.PAGE_FAKE_OVERLAP;
     this.PAGE_NONE_OVERLAP_BUT_DESERIALIZE += summary.PAGE_NONE_OVERLAP_BUT_DESERIALIZE;
   }
+
+  @Override
+  public String toString() {
+    return String.format(
+        "CHUNK_NONE_OVERLAP num is {}, CHUNK_NONE_OVERLAP_BUT_DESERIALIZE num is {}, CHUNK_OVERLAP_OR_MODIFIED num is {}, PAGE_NONE_OVERLAP num is {}, PAGE_NONE_OVERLAP_BUT_DESERIALIZE num is {}, PAGE_OVERLAP_OR_MODIFIED num is {}, PAGE_FAKE_OVERLAP num is {}.",
+        CHUNK_NONE_OVERLAP,
+        CHUNK_NONE_OVERLAP_BUT_DESERIALIZE,
+        CHUNK_OVERLAP_OR_MODIFIED,
+        PAGE_NONE_OVERLAP,
+        PAGE_NONE_OVERLAP_BUT_DESERIALIZE,
+        PAGE_OVERLAP_OR_MODIFIED,
+        PAGE_FAKE_OVERLAP);
+  }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/AlignedSeriesCompactionExecutor.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/AlignedSeriesCompactionExecutor.java
index fae9603ada..4b7bf025fc 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/AlignedSeriesCompactionExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/AlignedSeriesCompactionExecutor.java
@@ -20,7 +20,7 @@ package org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast;
 
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.engine.compaction.execute.task.subtask.SubCompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.ChunkMetadataElement;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.FileElement;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.PageElement;
@@ -66,7 +66,7 @@ public class AlignedSeriesCompactionExecutor extends SeriesCompactionExecutor {
       String deviceId,
       int subTaskId,
       List<IMeasurementSchema> measurementSchemas,
-      SubCompactionTaskSummary summary) {
+      FastCompactionTaskSummary summary) {
     super(compactionWriter, readerCacheMap, modificationCacheMap, deviceId, subTaskId, summary);
     this.timeseriesMetadataOffsetMap = timeseriesMetadataOffsetMap;
     this.measurementSchemas = measurementSchemas;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/NonAlignedSeriesCompactionExecutor.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/NonAlignedSeriesCompactionExecutor.java
index 8782345081..333fb72080 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/NonAlignedSeriesCompactionExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/NonAlignedSeriesCompactionExecutor.java
@@ -20,7 +20,7 @@ package org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast;
 
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.engine.compaction.execute.task.subtask.SubCompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.ChunkMetadataElement;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.FileElement;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.PageElement;
@@ -64,7 +64,7 @@ public class NonAlignedSeriesCompactionExecutor extends SeriesCompactionExecutor
       List<TsFileResource> sortedSourceFiles,
       String deviceId,
       int subTaskId,
-      SubCompactionTaskSummary summary) {
+      FastCompactionTaskSummary summary) {
     super(compactionWriter, readerCacheMap, modificationCacheMap, deviceId, subTaskId, summary);
     this.sortResources = sortedSourceFiles;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/SeriesCompactionExecutor.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/SeriesCompactionExecutor.java
index ab58b46aad..de6155615b 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/SeriesCompactionExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/SeriesCompactionExecutor.java
@@ -20,7 +20,7 @@ package org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast;
 
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.engine.compaction.execute.task.subtask.SubCompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.ChunkMetadataElement;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.FileElement;
 import org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element.PageElement;
@@ -32,6 +32,7 @@ import org.apache.iotdb.db.exception.WriteProcessException;
 import org.apache.iotdb.tsfile.exception.write.PageException;
 import org.apache.iotdb.tsfile.file.metadata.AlignedChunkMetadata;
 import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
+import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata;
 import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
 import org.apache.iotdb.tsfile.read.common.TimeRange;
 import org.apache.iotdb.tsfile.read.reader.chunk.AlignedChunkReader;
@@ -58,7 +59,7 @@ public abstract class SeriesCompactionExecutor {
         throws WriteProcessException, IOException, IllegalPathException;
   }
 
-  private final SubCompactionTaskSummary summary;
+  private final FastCompactionTaskSummary summary;
 
   // source files which are sorted by the start time of current device from old to new. Notice: If
   // the type of timeIndex is FileTimeIndex, it may contain resources in which the current device
@@ -93,7 +94,7 @@ public abstract class SeriesCompactionExecutor {
       Map<TsFileResource, List<Modification>> modificationCacheMap,
       String deviceId,
       int subTaskId,
-      SubCompactionTaskSummary summary) {
+      FastCompactionTaskSummary summary) {
     this.compactionWriter = compactionWriter;
     this.subTaskId = subTaskId;
     this.deviceId = deviceId;
@@ -154,6 +155,8 @@ public abstract class SeriesCompactionExecutor {
       throws IOException, PageException, WriteProcessException, IllegalPathException {
     for (ChunkMetadataElement overlappedChunkMetadata : overlappedChunkMetadataList) {
       readChunk(overlappedChunkMetadata);
+      updateSummary(overlappedChunkMetadata, ChunkStatus.READ_IN);
+      updateSummary(overlappedChunkMetadata, ChunkStatus.DESERIALIZE_CHUNK);
       deserializeChunkIntoQueue(overlappedChunkMetadata);
     }
     compactPages();
@@ -166,6 +169,7 @@ public abstract class SeriesCompactionExecutor {
   private void compactWithNonOverlapChunk(ChunkMetadataElement chunkMetadataElement)
       throws IOException, PageException, WriteProcessException, IllegalPathException {
     readChunk(chunkMetadataElement);
+    updateSummary(chunkMetadataElement, ChunkStatus.READ_IN);
     boolean success;
     if (chunkMetadataElement.chunkMetadata instanceof AlignedChunkMetadata) {
       success =
@@ -185,10 +189,12 @@ public abstract class SeriesCompactionExecutor {
     }
     if (success) {
       // flush chunk successfully, then remove this chunk
+      updateSummary(chunkMetadataElement, ChunkStatus.DIRECTORY_FLUSH);
       removeChunk(chunkMetadataQueue.peek());
     } else {
       // unsealed chunk is not large enough or chunk.endTime > file.endTime, then deserialize chunk
       summary.CHUNK_NONE_OVERLAP_BUT_DESERIALIZE += 1;
+      updateSummary(chunkMetadataElement, ChunkStatus.DESERIALIZE_CHUNK);
       deserializeChunkIntoQueue(chunkMetadataElement);
       compactPages();
     }
@@ -587,4 +593,59 @@ public abstract class SeriesCompactionExecutor {
     }
     return pathModifications;
   }
+
+  private void updateSummary(ChunkMetadataElement chunkMetadataElement, ChunkStatus status) {
+    switch (status) {
+      case READ_IN:
+        summary.increaseProcessChunkNum(
+            chunkMetadataElement.isAligned
+                ? ((AlignedChunkMetadata) chunkMetadataElement.chunkMetadata)
+                        .getValueChunkMetadataList()
+                        .size()
+                    + 1
+                : 1);
+        if (chunkMetadataElement.isAligned) {
+          for (IChunkMetadata valueChunkMetadata :
+              ((AlignedChunkMetadata) chunkMetadataElement.chunkMetadata)
+                  .getValueChunkMetadataList()) {
+            if (valueChunkMetadata == null) {
+              continue;
+            }
+            summary.increaseProcessPointNum(valueChunkMetadata.getStatistics().getCount());
+          }
+        } else {
+          summary.increaseProcessPointNum(
+              chunkMetadataElement.chunkMetadata.getStatistics().getCount());
+        }
+        break;
+      case DIRECTORY_FLUSH:
+        if (chunkMetadataElement.isAligned) {
+          summary.increaseDirectlyFlushChunkNum(
+              ((AlignedChunkMetadata) (chunkMetadataElement.chunkMetadata))
+                      .getValueChunkMetadataList()
+                      .size()
+                  + 1);
+        } else {
+          summary.increaseDirectlyFlushChunkNum(1);
+        }
+        break;
+      case DESERIALIZE_CHUNK:
+        if (chunkMetadataElement.isAligned) {
+          summary.increaseDeserializedChunkNum(
+              ((AlignedChunkMetadata) (chunkMetadataElement.chunkMetadata))
+                      .getValueChunkMetadataList()
+                      .size()
+                  + 1);
+        } else {
+          summary.increaseDeserializePageNum(1);
+        }
+        break;
+    }
+  }
+
+  enum ChunkStatus {
+    READ_IN,
+    DIRECTORY_FLUSH,
+    DESERIALIZE_CHUNK
+  }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/element/ChunkMetadataElement.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/element/ChunkMetadataElement.java
index c876461d8b..fbcae98734 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/element/ChunkMetadataElement.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/fast/element/ChunkMetadataElement.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.execute.utils.executor.fast.element;
 
+import org.apache.iotdb.tsfile.file.metadata.AlignedChunkMetadata;
 import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata;
 import org.apache.iotdb.tsfile.read.common.Chunk;
 
@@ -39,6 +40,7 @@ public class ChunkMetadataElement {
   public Chunk chunk;
 
   public List<Chunk> valueChunks;
+  public boolean isAligned;
 
   public ChunkMetadataElement(
       IChunkMetadata chunkMetadata, long priority, boolean isLastChunk, FileElement fileElement) {
@@ -47,6 +49,7 @@ public class ChunkMetadataElement {
     this.startTime = chunkMetadata.getStartTime();
     this.isLastChunk = isLastChunk;
     this.fileElement = fileElement;
+    this.isAligned = chunkMetadata instanceof AlignedChunkMetadata;
   }
 
   public void clearChunks() {
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/FastCrossCompactionPerformerTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/FastCrossCompactionPerformerTest.java
index 3097dc13c8..bb304a7818 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/FastCrossCompactionPerformerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/FastCrossCompactionPerformerTest.java
@@ -25,7 +25,7 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.execute.utils.reader.IDataBlockReader;
 import org.apache.iotdb.db.engine.compaction.execute.utils.reader.SeriesDataBlockReader;
@@ -141,7 +141,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -258,7 +258,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -456,7 +456,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -651,7 +651,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -836,7 +836,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -1014,7 +1014,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -1145,7 +1145,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
           CompactionFileGeneratorUtils.getCrossCompactionTargetTsFileResources(seqResources);
       ICompactionPerformer performer =
           new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
       Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -1222,7 +1222,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
           CompactionFileGeneratorUtils.getCrossCompactionTargetTsFileResources(seqResources);
       ICompactionPerformer performer =
           new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
       Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -1363,7 +1363,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -1494,7 +1494,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -1699,7 +1699,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -1939,7 +1939,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -2057,7 +2057,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -2186,7 +2186,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -2328,7 +2328,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -2449,7 +2449,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -2589,7 +2589,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -2752,7 +2752,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -2998,7 +2998,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -3269,7 +3269,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -3462,7 +3462,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -3784,7 +3784,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
@@ -3952,7 +3952,7 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest {
     FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
     ICompactionPerformer performer =
         new FastCompactionPerformer(seqResources, unseqResources, targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     Assert.assertEquals(0, FileReaderManager.getInstance().getClosedFileReaderMap().size());
     Assert.assertEquals(0, FileReaderManager.getInstance().getUnclosedFileReaderMap().size());
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
index c77954187d..bf67d701ec 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
@@ -24,9 +24,9 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.AbstractCompactionTest;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICrossCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.task.CrossSpaceCompactionTask;
 import org.apache.iotdb.db.engine.compaction.execute.task.InnerSpaceCompactionTask;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.selector.ICompactionSelector;
 import org.apache.iotdb.db.engine.compaction.selector.ICrossSpaceSelector;
@@ -2128,7 +2128,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
     FastCompactionPerformer performer = new FastCompactionPerformer(false);
     performer.setSourceFiles(sourceFiles);
     performer.setTargetFiles(targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
 
     CompactionUtils.moveTargetFile(targetResources, true, COMPACTION_TEST_SG + "-" + "0");
@@ -2234,7 +2234,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
             sourceFiles.getSeqFiles());
     performer.setSourceFiles(sourceFiles.getSeqFiles(), sourceFiles.getUnseqFiles());
     performer.setTargetFiles(targetResources);
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
 
     CompactionUtils.moveTargetFile(targetResources, false, COMPACTION_TEST_SG + "-" + "0");
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/FastCompactionPerformerAlignedTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/FastCompactionPerformerAlignedTest.java
index 0527b0e9a7..c6b3fcacfb 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/FastCompactionPerformerAlignedTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/FastCompactionPerformerAlignedTest.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.TestUtilsForAlignedSeries;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.schedule.CompactionTaskManager;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionCheckerUtils;
@@ -142,7 +142,7 @@ public class FastCompactionPerformerAlignedTest {
             fullPaths, iMeasurementSchemas, resources, new ArrayList<>());
     performer.setSourceFiles(resources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
@@ -216,7 +216,7 @@ public class FastCompactionPerformerAlignedTest {
             fullPaths, iMeasurementSchemas, resources, new ArrayList<>());
     performer.setSourceFiles(resources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
     Map<PartialPath, List<TimeValuePair>> compactedData =
@@ -283,7 +283,7 @@ public class FastCompactionPerformerAlignedTest {
             fullPaths, iMeasurementSchemas, resources, new ArrayList<>());
     performer.setSourceFiles(resources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
     Map<PartialPath, List<TimeValuePair>> compactedData =
@@ -353,7 +353,7 @@ public class FastCompactionPerformerAlignedTest {
             fullPaths, iMeasurementSchemas, resources, new ArrayList<>());
     performer.setSourceFiles(resources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
     Map<PartialPath, List<TimeValuePair>> compactedData =
@@ -421,7 +421,7 @@ public class FastCompactionPerformerAlignedTest {
             fullPaths, iMeasurementSchemas, resources, new ArrayList<>());
     performer.setSourceFiles(resources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
     Map<PartialPath, List<TimeValuePair>> compactedData =
@@ -491,7 +491,7 @@ public class FastCompactionPerformerAlignedTest {
             fullPaths, iMeasurementSchemas, resources, new ArrayList<>());
     performer.setSourceFiles(resources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
     Map<PartialPath, List<TimeValuePair>> compactedData =
@@ -562,7 +562,7 @@ public class FastCompactionPerformerAlignedTest {
             fullPaths, iMeasurementSchemas, resources, new ArrayList<>());
     performer.setSourceFiles(resources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
     Map<PartialPath, List<TimeValuePair>> compactedData =
@@ -644,7 +644,7 @@ public class FastCompactionPerformerAlignedTest {
             fullPaths, iMeasurementSchemas, resources, new ArrayList<>());
     performer.setSourceFiles(resources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
     Map<PartialPath, List<TimeValuePair>> compactedData =
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/FastCompactionPerformerNoAlignedTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/FastCompactionPerformerNoAlignedTest.java
index b666869d9a..cd5ccb9f77 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/FastCompactionPerformerNoAlignedTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/FastCompactionPerformerNoAlignedTest.java
@@ -29,7 +29,7 @@ import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.schedule.CompactionTaskManager;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionCheckerUtils;
@@ -198,7 +198,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
@@ -283,7 +283,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
@@ -370,7 +370,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
@@ -444,7 +444,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
@@ -547,7 +547,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
@@ -621,7 +621,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
@@ -698,7 +698,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
@@ -768,7 +768,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
@@ -841,7 +841,7 @@ public class FastCompactionPerformerNoAlignedTest {
           TsFileNameGenerator.getInnerCompactionTargetFileResource(sourceFiles, true);
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(Collections.singletonList(targetResource), true, storageGroup);
       Map<String, List<List<Long>>> chunkPagePointsNumMerged = new HashMap<>();
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSeqCompactionWithFastPerformerTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSeqCompactionWithFastPerformerTest.java
index 76d74fcd55..e845007554 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSeqCompactionWithFastPerformerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSeqCompactionWithFastPerformerTest.java
@@ -27,8 +27,8 @@ import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.task.InnerSpaceCompactionTask;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionCheckerUtils;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionClearUtils;
@@ -229,7 +229,7 @@ public class InnerSeqCompactionWithFastPerformerTest {
               ICompactionPerformer performer = new FastCompactionPerformer(false);
               performer.setSourceFiles(sourceResources);
               performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-              performer.setSummary(new CompactionTaskSummary());
+              performer.setSummary(new FastCompactionTaskSummary());
               performer.perform();
               CompactionUtils.moveTargetFile(
                   Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
@@ -462,7 +462,7 @@ public class InnerSeqCompactionWithFastPerformerTest {
             ICompactionPerformer performer = new FastCompactionPerformer(false);
             performer.setSourceFiles(toMergeResources);
             performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-            performer.setSummary(new CompactionTaskSummary());
+            performer.setSummary(new FastCompactionTaskSummary());
             performer.perform();
             CompactionUtils.moveTargetFile(
                 Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
@@ -744,7 +744,7 @@ public class InnerSeqCompactionWithFastPerformerTest {
               ICompactionPerformer performer = new FastCompactionPerformer(false);
               performer.setSourceFiles(toMergeResources);
               performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-              performer.setSummary(new CompactionTaskSummary());
+              performer.setSummary(new FastCompactionTaskSummary());
               performer.perform();
               CompactionUtils.moveTargetFile(
                   Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSeqCompactionWithReadChunkPerformerTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSeqCompactionWithReadChunkPerformerTest.java
index 36ddbf3b6e..66ebf10e40 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSeqCompactionWithReadChunkPerformerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSeqCompactionWithReadChunkPerformerTest.java
@@ -27,8 +27,8 @@ import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.ReadChunkCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.task.InnerSpaceCompactionTask;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionCheckerUtils;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionClearUtils;
@@ -227,7 +227,7 @@ public class InnerSeqCompactionWithReadChunkPerformerTest {
               }
               ICompactionPerformer performer =
                   new ReadChunkCompactionPerformer(sourceResources, targetTsFileResource);
-              performer.setSummary(new CompactionTaskSummary());
+              performer.setSummary(new FastCompactionTaskSummary());
               performer.perform();
               CompactionUtils.moveTargetFile(
                   Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
@@ -455,7 +455,7 @@ public class InnerSeqCompactionWithReadChunkPerformerTest {
             }
             ICompactionPerformer performer =
                 new ReadChunkCompactionPerformer(toMergeResources, targetTsFileResource);
-            performer.setSummary(new CompactionTaskSummary());
+            performer.setSummary(new FastCompactionTaskSummary());
             performer.perform();
             CompactionUtils.moveTargetFile(
                 Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
@@ -733,7 +733,7 @@ public class InnerSeqCompactionWithReadChunkPerformerTest {
               }
               ICompactionPerformer performer =
                   new ReadChunkCompactionPerformer(toMergeResources, targetTsFileResource);
-              performer.setSummary(new CompactionTaskSummary());
+              performer.setSummary(new FastCompactionTaskSummary());
               performer.perform();
               CompactionUtils.moveTargetFile(
                   Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionExceptionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionExceptionTest.java
index 8f96a301db..cdff206b84 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionExceptionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionExceptionTest.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.engine.compaction.inner;
 import org.apache.iotdb.db.engine.compaction.execute.exception.CompactionExceptionHandler;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.execute.utils.log.CompactionLogger;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionFileGeneratorUtils;
@@ -69,7 +69,7 @@ public class InnerSpaceCompactionExceptionTest extends AbstractInnerSpaceCompact
         Collections.singletonList(targetResource), CompactionLogger.STR_TARGET_FILES);
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -121,7 +121,7 @@ public class InnerSpaceCompactionExceptionTest extends AbstractInnerSpaceCompact
         Collections.singletonList(targetResource), CompactionLogger.STR_TARGET_FILES);
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -169,7 +169,7 @@ public class InnerSpaceCompactionExceptionTest extends AbstractInnerSpaceCompact
         Collections.singletonList(targetResource), CompactionLogger.STR_TARGET_FILES);
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -228,7 +228,7 @@ public class InnerSpaceCompactionExceptionTest extends AbstractInnerSpaceCompact
         Collections.singletonList(targetResource), CompactionLogger.STR_TARGET_FILES);
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -283,7 +283,7 @@ public class InnerSpaceCompactionExceptionTest extends AbstractInnerSpaceCompact
         Collections.singletonList(targetResource), CompactionLogger.STR_TARGET_FILES);
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -361,7 +361,7 @@ public class InnerSpaceCompactionExceptionTest extends AbstractInnerSpaceCompact
     }
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -423,7 +423,7 @@ public class InnerSpaceCompactionExceptionTest extends AbstractInnerSpaceCompact
     }
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerUnseqCompactionWithFastPerformerTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerUnseqCompactionWithFastPerformerTest.java
index d4c68430d5..bbfa00aa60 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerUnseqCompactionWithFastPerformerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerUnseqCompactionWithFastPerformerTest.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionCheckerUtils;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionClearUtils;
@@ -366,7 +366,7 @@ public class InnerUnseqCompactionWithFastPerformerTest {
                       Collections.emptyList(),
                       toMergeResources,
                       Collections.singletonList(targetTsFileResource));
-              performer.setSummary(new CompactionTaskSummary());
+              performer.setSummary(new FastCompactionTaskSummary());
               performer.perform();
               CompactionUtils.moveTargetFile(
                   Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java
index 67f93b1ea8..3c6600ace9 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java
@@ -28,7 +28,7 @@ import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.recover.CompactionRecoverTask;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.execute.utils.log.CompactionLogger;
 import org.apache.iotdb.db.engine.compaction.execute.utils.reader.IDataBlockReader;
@@ -148,7 +148,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     deleteFileIfExists(targetTsFileResource.getTsFile());
     performer.setSourceFiles(new ArrayList<>(seqResources.subList(0, 3)));
     performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     compactionLogger.close();
     CompactionUtils.moveTargetFile(
@@ -267,7 +267,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     deleteFileIfExists(targetTsFileResource.getTsFile());
     performer.setSourceFiles(new ArrayList<>(seqResources.subList(0, 3)));
     performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     compactionLogger.close();
     new CompactionRecoverTask(COMPACTION_TEST_SG, "0", tsFileManager, compactionLogFile, true)
@@ -375,7 +375,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     deleteFileIfExists(targetTsFileResource.getTsFile());
     performer.setSourceFiles(new ArrayList<>(seqResources.subList(0, 3)));
     performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     // target file may not exist
     targetTsFileResource.remove();
@@ -475,7 +475,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     deleteFileIfExists(targetTsFileResource.getTsFile());
     performer.setSourceFiles(new ArrayList<>(seqResources.subList(0, 3)));
     performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
@@ -549,7 +549,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     compactionLogger.logFiles(Collections.singletonList(targetResource), STR_TARGET_FILES);
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -621,7 +621,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     compactionLogger.logFiles(Collections.singletonList(targetResource), STR_TARGET_FILES);
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     // target file may not exist
     targetResource.remove();
@@ -695,7 +695,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     compactionLogger.logFiles(Collections.singletonList(targetResource), STR_TARGET_FILES);
     performer.setSourceFiles(seqResources);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -808,7 +808,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     deleteFileIfExists(targetTsFileResource.getTsFile());
     performer.setSourceFiles(new ArrayList<>(seqResources.subList(0, 3)));
     performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     compactionLogger.close();
     CompactionUtils.moveTargetFile(
@@ -895,7 +895,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     deleteFileIfExists(targetTsFileResource.getTsFile());
     performer.setSourceFiles(new ArrayList<>(seqResources.subList(0, 3)));
     performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetTsFileResource), true, COMPACTION_TEST_SG);
@@ -985,7 +985,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio
     deleteFileIfExists(targetTsFileResource.getTsFile());
     performer.setSourceFiles(new ArrayList<>(seqResources.subList(0, 3)));
     performer.setTargetFiles(Collections.singletonList(targetTsFileResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     compactionLogger.close();
     CompactionUtils.moveTargetFile(
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
index d65c9eed31..c6e62c33fc 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
@@ -28,7 +28,7 @@ import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.compaction.execute.performer.ICompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.performer.impl.FastCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.execute.recover.CompactionRecoverTask;
-import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
+import org.apache.iotdb.db.engine.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.utils.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.execute.utils.log.CompactionLogger;
 import org.apache.iotdb.db.engine.compaction.schedule.CompactionTaskManager;
@@ -233,7 +233,7 @@ public class SizeTieredCompactionRecoverTest {
     compactionLogger.close();
     performer.setSourceFiles(sourceFiles);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -287,7 +287,7 @@ public class SizeTieredCompactionRecoverTest {
     compactionLogger.close();
     performer.setSourceFiles(sourceFiles);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -346,7 +346,7 @@ public class SizeTieredCompactionRecoverTest {
     logger.close();
     performer.setSourceFiles(sourceFiles);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -400,7 +400,7 @@ public class SizeTieredCompactionRecoverTest {
     compactionLogger.close();
     performer.setSourceFiles(sourceFiles);
     performer.setTargetFiles(Collections.singletonList(targetResource));
-    performer.setSummary(new CompactionTaskSummary());
+    performer.setSummary(new FastCompactionTaskSummary());
     performer.perform();
     CompactionUtils.moveTargetFile(
         Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -462,7 +462,7 @@ public class SizeTieredCompactionRecoverTest {
       compactionLogger.close();
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(
           Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -562,7 +562,7 @@ public class SizeTieredCompactionRecoverTest {
       compactionLogger.close();
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(
           Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -659,7 +659,7 @@ public class SizeTieredCompactionRecoverTest {
       compactionLogger.close();
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(
           Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);
@@ -759,7 +759,7 @@ public class SizeTieredCompactionRecoverTest {
       compactionLogger.close();
       performer.setSourceFiles(sourceFiles);
       performer.setTargetFiles(Collections.singletonList(targetResource));
-      performer.setSummary(new CompactionTaskSummary());
+      performer.setSummary(new FastCompactionTaskSummary());
       performer.perform();
       CompactionUtils.moveTargetFile(
           Collections.singletonList(targetResource), true, COMPACTION_TEST_SG);