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 2022/12/06 07:07:34 UTC

[iotdb] branch master updated: add uts of fast compaction performer (#8346)

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

marklau99 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 64ed75f500 add uts of fast compaction performer (#8346)
64ed75f500 is described below

commit 64ed75f500d7dc0676c9f92d29f2ba3baed86934
Author: 周沛辰 <45...@users.noreply.github.com>
AuthorDate: Tue Dec 6 15:07:27 2022 +0800

    add uts of fast compaction performer (#8346)
---
 ...CrossSpaceCompactionWithFastPerformerTest.java} |  19 +-
 ...CompactionWithFastPerformerValidationTest.java} | 252 ++++-----------------
 ...SpaceCompactionWithReadPointPerformerTest.java} |  19 +-
 ...ctionWithReadPointPerformerValidationTest.java} | 202 ++++-------------
 ...CrossSpaceCompactionWithFastPerformerTest.java} |   2 +-
 ...SpaceCompactionWithReadPointPerformerTest.java} |  12 +-
 .../utils/MultiTsFileDeviceIteratorTest.java       |  75 ++++++
 7 files changed, 181 insertions(+), 400 deletions(-)

diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerTest.java
similarity index 98%
copy from server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTest.java
copy to server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerTest.java
index be3f273092..da850a691a 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerTest.java
@@ -20,13 +20,13 @@
 package org.apache.iotdb.db.engine.compaction.cross;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.cache.BloomFilterCache;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.CrossSpaceCompactionResource;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.RewriteCrossSpaceCompactionSelector;
+import org.apache.iotdb.db.engine.compaction.performer.impl.FastCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionCheckerUtils;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionClearUtils;
@@ -60,7 +60,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import static org.junit.Assert.fail;
 
-public class CrossSpaceCompactionTest {
+public class CrossSpaceCompactionWithFastPerformerTest {
   private final String oldThreadName = Thread.currentThread().getName();
   int index = 0;
 
@@ -421,10 +421,7 @@ public class CrossSpaceCompactionTest {
                         "target\\data\\sequence\\test\\root.compactionTest\\0\\0\\"),
                     mergeResource.getSeqFiles(),
                     mergeResource.getUnseqFiles(),
-                    IoTDBDescriptor.getInstance()
-                        .getConfig()
-                        .getCrossCompactionPerformer()
-                        .createInstance(),
+                    new FastCompactionPerformer(true),
                     new AtomicInteger(0),
                     0,
                     0);
@@ -728,10 +725,7 @@ public class CrossSpaceCompactionTest {
                         "target\\data\\sequence\\test\\root.compactionTest\\0\\0\\"),
                     mergeResource.getSeqFiles(),
                     mergeResource.getUnseqFiles(),
-                    IoTDBDescriptor.getInstance()
-                        .getConfig()
-                        .getCrossCompactionPerformer()
-                        .createInstance(),
+                    new FastCompactionPerformer(true),
                     new AtomicInteger(0),
                     0,
                     0);
@@ -1034,10 +1028,7 @@ public class CrossSpaceCompactionTest {
                         "target\\data\\sequence\\test\\root.compactionTest\\0\\0\\"),
                     mergeResource.getSeqFiles(),
                     mergeResource.getUnseqFiles(),
-                    IoTDBDescriptor.getInstance()
-                        .getConfig()
-                        .getCrossCompactionPerformer()
-                        .createInstance(),
+                    new FastCompactionPerformer(true),
                     new AtomicInteger(0),
                     0,
                     0);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
similarity index 91%
copy from server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java
copy to server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
index 4cbef2a710..e19bd0a11f 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
@@ -22,12 +22,10 @@ package org.apache.iotdb.db.engine.compaction.cross;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.AbstractCompactionTest;
-import org.apache.iotdb.db.engine.compaction.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.CrossSpaceCompactionResource;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.RewriteCrossSpaceCompactionSelector;
-import org.apache.iotdb.db.engine.compaction.performer.impl.ReadChunkCompactionPerformer;
-import org.apache.iotdb.db.engine.compaction.task.CompactionTaskSummary;
-import org.apache.iotdb.db.engine.compaction.utils.CompactionFileGeneratorUtils;
+import org.apache.iotdb.db.engine.compaction.performer.ICrossCompactionPerformer;
+import org.apache.iotdb.db.engine.compaction.performer.impl.FastCompactionPerformer;
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResourceStatus;
@@ -45,17 +43,17 @@ import org.junit.Before;
 import org.junit.Test;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
-public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
+public class CrossSpaceCompactionWithFastPerformerValidationTest extends AbstractCompactionTest {
   TsFileManager tsFileManager =
       new TsFileManager(COMPACTION_TEST_SG, "0", STORAGE_GROUP_DIR.getPath());
 
   private final String oldThreadName = Thread.currentThread().getName();
 
+  private ICrossCompactionPerformer performer = new FastCompactionPerformer(true);
+
   @Before
   public void setUp()
       throws IOException, WriteProcessException, MetadataException, InterruptedException {
@@ -105,10 +103,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -153,10 +148,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -201,10 +193,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -257,10 +246,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -310,10 +296,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -361,10 +344,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -415,10 +395,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -468,10 +445,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -521,10 +495,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -575,10 +546,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -629,10 +597,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -683,10 +648,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -738,10 +700,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -794,10 +753,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -850,10 +806,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -907,10 +860,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -965,10 +915,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1023,10 +970,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1081,10 +1025,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1139,10 +1080,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1196,10 +1134,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1249,10 +1184,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1303,10 +1235,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1357,10 +1286,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1411,10 +1337,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1466,10 +1389,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1522,10 +1442,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1578,10 +1495,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1635,10 +1549,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1693,10 +1604,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1751,10 +1659,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1809,10 +1714,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1867,10 +1769,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1924,10 +1823,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1979,10 +1875,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2030,10 +1923,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2086,10 +1976,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2143,10 +2030,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2200,10 +2084,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2211,49 +2092,4 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
 
     validateSeqFiles(true);
   }
-
-  /**
-   * Cross space compaction select 1, 2, 3, 4, 5 seq file, but file 3 and 4 are being compacted and
-   * being deleted by other inner compaction task. Cross space compaction selector should abort this
-   * task.
-   */
-  @Test
-  public void testSelectingFilesWhenSomeFilesBeingDeleted()
-      throws MetadataException, IOException, WriteProcessException, StorageEngineException,
-          InterruptedException, MergeException {
-    registerTimeseriesInMManger(5, 10, true);
-    createFiles(5, 10, 5, 1000, 0, 0, 100, 100, false, true);
-    createFiles(1, 5, 10, 4500, 500, 500, 0, 100, false, false);
-    tsFileManager.addAll(seqResources, true);
-    tsFileManager.addAll(unseqResources, false);
-
-    // seq file 3 and 4 are being compacted by inner space compaction
-    List<TsFileResource> sourceFiles = new ArrayList<>();
-    sourceFiles.add(seqResources.get(2));
-    sourceFiles.add(seqResources.get(3));
-    List<TsFileResource> targetResources =
-        CompactionFileGeneratorUtils.getInnerCompactionTargetTsFileResources(sourceFiles, true);
-    ReadChunkCompactionPerformer performer = new ReadChunkCompactionPerformer(sourceFiles);
-    performer.setTargetFiles(targetResources);
-    performer.setSummary(new CompactionTaskSummary());
-    performer.perform();
-
-    CompactionUtils.moveTargetFile(targetResources, true, COMPACTION_TEST_SG + "-" + "0");
-    CompactionUtils.combineModsInInnerCompaction(sourceFiles, targetResources.get(0));
-    tsFileManager.replace(sourceFiles, Collections.emptyList(), targetResources, 0, true);
-    CompactionUtils.deleteTsFilesInDisk(sourceFiles, COMPACTION_TEST_SG + "-" + "0");
-
-    // start selecting files and then start a cross space compaction task
-    ICrossSpaceSelector selector =
-        IoTDBDescriptor.getInstance()
-            .getConfig()
-            .getCrossCompactionSelector()
-            .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
-    // In the process of getting the file list and starting to select files, the file list is
-    // updated (the file is deleted or the status is updated)
-    List<Pair<List<TsFileResource>, List<TsFileResource>>> selected =
-        selector.selectCrossSpaceTask(seqResources, unseqResources);
-
-    Assert.assertEquals(0, selected.size());
-  }
 }
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithReadPointPerformerTest.java
similarity index 98%
rename from server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTest.java
rename to server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithReadPointPerformerTest.java
index be3f273092..594c312f6e 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithReadPointPerformerTest.java
@@ -20,13 +20,13 @@
 package org.apache.iotdb.db.engine.compaction.cross;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.cache.BloomFilterCache;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.CrossSpaceCompactionResource;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.RewriteCrossSpaceCompactionSelector;
+import org.apache.iotdb.db.engine.compaction.performer.impl.ReadPointCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionCheckerUtils;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionClearUtils;
@@ -60,7 +60,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import static org.junit.Assert.fail;
 
-public class CrossSpaceCompactionTest {
+public class CrossSpaceCompactionWithReadPointPerformerTest {
   private final String oldThreadName = Thread.currentThread().getName();
   int index = 0;
 
@@ -421,10 +421,7 @@ public class CrossSpaceCompactionTest {
                         "target\\data\\sequence\\test\\root.compactionTest\\0\\0\\"),
                     mergeResource.getSeqFiles(),
                     mergeResource.getUnseqFiles(),
-                    IoTDBDescriptor.getInstance()
-                        .getConfig()
-                        .getCrossCompactionPerformer()
-                        .createInstance(),
+                    new ReadPointCompactionPerformer(),
                     new AtomicInteger(0),
                     0,
                     0);
@@ -728,10 +725,7 @@ public class CrossSpaceCompactionTest {
                         "target\\data\\sequence\\test\\root.compactionTest\\0\\0\\"),
                     mergeResource.getSeqFiles(),
                     mergeResource.getUnseqFiles(),
-                    IoTDBDescriptor.getInstance()
-                        .getConfig()
-                        .getCrossCompactionPerformer()
-                        .createInstance(),
+                    new ReadPointCompactionPerformer(),
                     new AtomicInteger(0),
                     0,
                     0);
@@ -1034,10 +1028,7 @@ public class CrossSpaceCompactionTest {
                         "target\\data\\sequence\\test\\root.compactionTest\\0\\0\\"),
                     mergeResource.getSeqFiles(),
                     mergeResource.getUnseqFiles(),
-                    IoTDBDescriptor.getInstance()
-                        .getConfig()
-                        .getCrossCompactionPerformer()
-                        .createInstance(),
+                    new ReadPointCompactionPerformer(),
                     new AtomicInteger(0),
                     0,
                     0);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithReadPointPerformerValidationTest.java
similarity index 93%
rename from server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java
rename to server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithReadPointPerformerValidationTest.java
index 4cbef2a710..0ab3b3f411 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionValidationTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithReadPointPerformerValidationTest.java
@@ -25,7 +25,9 @@ import org.apache.iotdb.db.engine.compaction.AbstractCompactionTest;
 import org.apache.iotdb.db.engine.compaction.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.CrossSpaceCompactionResource;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.RewriteCrossSpaceCompactionSelector;
+import org.apache.iotdb.db.engine.compaction.performer.ICrossCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.performer.impl.ReadChunkCompactionPerformer;
+import org.apache.iotdb.db.engine.compaction.performer.impl.ReadPointCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.task.CompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionFileGeneratorUtils;
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
@@ -50,12 +52,15 @@ import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
-public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
+public class CrossSpaceCompactionWithReadPointPerformerValidationTest
+    extends AbstractCompactionTest {
   TsFileManager tsFileManager =
       new TsFileManager(COMPACTION_TEST_SG, "0", STORAGE_GROUP_DIR.getPath());
 
   private final String oldThreadName = Thread.currentThread().getName();
 
+  private ICrossCompactionPerformer performer = new ReadPointCompactionPerformer();
+
   @Before
   public void setUp()
       throws IOException, WriteProcessException, MetadataException, InterruptedException {
@@ -105,10 +110,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -153,10 +155,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -201,10 +200,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -257,10 +253,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -310,10 +303,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -361,10 +351,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -415,10 +402,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -468,10 +452,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -521,10 +502,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -575,10 +553,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -629,10 +604,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -683,10 +655,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -738,10 +707,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -794,10 +760,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -850,10 +813,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -907,10 +867,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -965,10 +922,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1023,10 +977,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1081,10 +1032,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1139,10 +1087,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1196,10 +1141,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1249,10 +1191,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1303,10 +1242,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1357,10 +1293,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1411,10 +1344,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1466,10 +1396,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1522,10 +1449,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1578,10 +1502,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1635,10 +1556,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1693,10 +1611,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1751,10 +1666,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1809,10 +1721,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1867,10 +1776,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1924,10 +1830,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -1979,10 +1882,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2030,10 +1930,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2086,10 +1983,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2143,10 +2037,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
@@ -2200,10 +2091,7 @@ public class CrossSpaceCompactionValidationTest extends AbstractCompactionTest {
             tsFileManager,
             selected.get(0).left,
             selected.get(0).right,
-            IoTDBDescriptor.getInstance()
-                .getConfig()
-                .getCrossCompactionPerformer()
-                .createInstance(),
+            performer,
             new AtomicInteger(0),
             0,
             tsFileManager.getNextCompactionTaskId())
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionWithFastPerformerTest.java
similarity index 99%
copy from server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java
copy to server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionWithFastPerformerTest.java
index 8a35b9f965..d6abe8ff14 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionWithFastPerformerTest.java
@@ -67,7 +67,7 @@ import static org.apache.iotdb.commons.conf.IoTDBConstant.CROSS_COMPACTION_TMP_F
 import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 import static org.junit.Assert.assertEquals;
 
-public class RewriteCrossSpaceCompactionTest extends AbstractCompactionTest {
+public class RewriteCrossSpaceCompactionWithFastPerformerTest extends AbstractCompactionTest {
 
   private final String oldThreadName = Thread.currentThread().getName();
 
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionWithReadPointPerformerTest.java
similarity index 98%
rename from server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java
rename to server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionWithReadPointPerformerTest.java
index 8a35b9f965..0693e6ebfa 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionWithReadPointPerformerTest.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.commons.path.AlignedPath;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.AbstractCompactionTest;
-import org.apache.iotdb.db.engine.compaction.performer.impl.FastCompactionPerformer;
+import org.apache.iotdb.db.engine.compaction.performer.impl.ReadPointCompactionPerformer;
 import org.apache.iotdb.db.engine.compaction.utils.CompactionFileGeneratorUtils;
 import org.apache.iotdb.db.engine.flush.TsFileFlushPolicy;
 import org.apache.iotdb.db.engine.storagegroup.DataRegion;
@@ -67,7 +67,7 @@ import static org.apache.iotdb.commons.conf.IoTDBConstant.CROSS_COMPACTION_TMP_F
 import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 import static org.junit.Assert.assertEquals;
 
-public class RewriteCrossSpaceCompactionTest extends AbstractCompactionTest {
+public class RewriteCrossSpaceCompactionWithReadPointPerformerTest extends AbstractCompactionTest {
 
   private final String oldThreadName = Thread.currentThread().getName();
 
@@ -229,7 +229,7 @@ public class RewriteCrossSpaceCompactionTest extends AbstractCompactionTest {
             tsFileManager,
             seqResources,
             unseqResources,
-            new FastCompactionPerformer(true),
+            new ReadPointCompactionPerformer(),
             new AtomicInteger(0),
             0,
             0);
@@ -467,7 +467,7 @@ public class RewriteCrossSpaceCompactionTest extends AbstractCompactionTest {
             tsFileManager,
             seqResources,
             unseqResources,
-            new FastCompactionPerformer(true),
+            new ReadPointCompactionPerformer(),
             new AtomicInteger(0),
             0,
             0);
@@ -615,7 +615,7 @@ public class RewriteCrossSpaceCompactionTest extends AbstractCompactionTest {
             vsgp.getTsFileResourceManager(),
             seqResources,
             unseqResources,
-            new FastCompactionPerformer(true),
+            new ReadPointCompactionPerformer(),
             new AtomicInteger(0),
             0,
             0);
@@ -736,7 +736,7 @@ public class RewriteCrossSpaceCompactionTest extends AbstractCompactionTest {
             vsgp.getTsFileResourceManager(),
             seqResources,
             unseqResources,
-            new FastCompactionPerformer(true),
+            new ReadPointCompactionPerformer(),
             new AtomicInteger(0),
             0,
             0);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/MultiTsFileDeviceIteratorTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/MultiTsFileDeviceIteratorTest.java
index 0e699da1e2..b72f39af06 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/MultiTsFileDeviceIteratorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/MultiTsFileDeviceIteratorTest.java
@@ -117,4 +117,79 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
     }
     Assert.assertEquals(30, deviceNum);
   }
+
+  @Test
+  public void getNonAlignedDevicesFromDifferentFilesWithFourLayersInNodeTreeTestUsingFileTimeIndex()
+      throws MetadataException, IOException, WriteProcessException {
+    TSFileDescriptor.getInstance().getConfig().setMaxDegreeOfIndexNode(3);
+    registerTimeseriesInMManger(30, 3, false);
+    createFiles(3, 10, 3, 100, 0, 0, 50, 50, false, true);
+    createFiles(4, 5, 3, 100, 1000, 0, 50, 50, false, true);
+    createFiles(2, 15, 3, 100, 1000, 0, 50, 50, false, false);
+    createFiles(3, 30, 3, 100, 1000, 0, 50, 50, false, false);
+
+    // use file time index
+    for (TsFileResource resource : seqResources) {
+      resource.degradeTimeIndex();
+    }
+    for (TsFileResource resource : unseqResources) {
+      resource.degradeTimeIndex();
+    }
+
+    // sort the deviceId in lexicographical order from small to large
+    List<String> deviceIds = new ArrayList<>();
+    for (int i = 0; i < 30; i++) {
+      deviceIds.add("root.testsg.d" + i);
+    }
+    deviceIds.sort(String::compareTo);
+
+    int deviceNum = 0;
+    try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
+        new MultiTsFileDeviceIterator(seqResources, unseqResources)) {
+      while (multiTsFileDeviceIterator.hasNextDevice()) {
+        Pair<String, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
+        Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
+        Assert.assertFalse(deviceInfo.right);
+        deviceNum++;
+      }
+    }
+    Assert.assertEquals(30, deviceNum);
+  }
+
+  @Test
+  public void getAlignedDevicesFromDifferentFilesWithOneLayerInNodeTreeTestUsingFileTimeIndex()
+      throws MetadataException, IOException, WriteProcessException {
+    registerTimeseriesInMManger(30, 3, false);
+    createFiles(3, 10, 3, 100, 0, 0, 50, 50, true, true);
+    createFiles(4, 5, 3, 100, 1000, 0, 50, 50, true, true);
+    createFiles(2, 15, 3, 100, 1000, 0, 50, 50, true, false);
+    createFiles(3, 30, 3, 100, 1000, 0, 50, 50, true, false);
+
+    // use file time index
+    for (TsFileResource resource : seqResources) {
+      resource.degradeTimeIndex();
+    }
+    for (TsFileResource resource : unseqResources) {
+      resource.degradeTimeIndex();
+    }
+
+    // sort the deviceId in lexicographical order from small to large
+    List<String> deviceIds = new ArrayList<>();
+    for (int i = 0; i < 30; i++) {
+      deviceIds.add("root.testsg.d" + (i + TsFileGeneratorUtils.getAlignDeviceOffset()));
+    }
+    deviceIds.sort(String::compareTo);
+
+    int deviceNum = 0;
+    try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
+        new MultiTsFileDeviceIterator(seqResources, unseqResources)) {
+      while (multiTsFileDeviceIterator.hasNextDevice()) {
+        Pair<String, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
+        Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
+        Assert.assertTrue(deviceInfo.right);
+        deviceNum++;
+      }
+    }
+    Assert.assertEquals(30, deviceNum);
+  }
 }