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

jiangtian 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 ce0c090c553 Share device info in compaction schedule (#13150)
ce0c090c553 is described below

commit ce0c090c553b36d3b5e7d5de15f8405169f63499
Author: shuwenwei <[email protected]>
AuthorDate: Wed Aug 14 09:54:14 2024 +0800

    Share device info in compaction schedule (#13150)
    
    * share device time index in compaction schedule
    
    * fix
    
    * fix bug
---
 .../db/service/metrics/CompactionMetrics.java      | 14 +++---
 .../db/storageengine/dataregion/DataRegion.java    | 55 +++++++++++++---------
 ...Summary.java => CompactionScheduleContext.java} | 28 ++++++++++-
 .../compaction/schedule/CompactionScheduler.java   | 47 ++++++++++--------
 .../constant/InnerSequenceCompactionSelector.java  |  4 +-
 .../InnerUnsequenceCompactionSelector.java         |  4 +-
 .../impl/RewriteCrossSpaceCompactionSelector.java  | 43 +++++++++++++++--
 .../utils/CrossSpaceCompactionCandidate.java       | 26 ++++++++--
 .../selector/utils/TsFileResourceCandidate.java    | 13 ++++-
 .../iotdb/db/storageengine/dataregion/TTLTest.java |  6 +--
 ...eCompactionWithFastPerformerValidationTest.java |  2 +-
 .../cross/InsertionCrossSpaceCompactionTest.java   |  4 +-
 .../inner/InnerCompactionSchedulerTest.java        |  8 ++--
 .../repair/RepairUnsortedFileCompactionTest.java   |  8 ++--
 14 files changed, 187 insertions(+), 75 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/CompactionMetrics.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/CompactionMetrics.java
index f3f464b20ef..1e1afdbad96 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/CompactionMetrics.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/CompactionMetrics.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.commons.service.metric.enums.Tag;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskStatus;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskType;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.CompactionTaskSummary;
-import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleSummary;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskManager;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.constant.CompactionIoDataType;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.constant.CompactionType;
@@ -813,14 +813,14 @@ public class CompactionMetrics implements IMetricSet {
   private Histogram settleCompactionTaskSelectedFileNum =
       DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
 
-  public void updateCompactionTaskSelectionNum(CompactionScheduleSummary 
summary) {
-    
seqInnerSpaceCompactionTaskSelectedNum.set(summary.getSubmitSeqInnerSpaceCompactionTaskNum());
+  public void updateCompactionTaskSelectionNum(CompactionScheduleContext 
context) {
+    
seqInnerSpaceCompactionTaskSelectedNum.set(context.getSubmitSeqInnerSpaceCompactionTaskNum());
     unseqInnerSpaceCompactionTaskSelectedNum.set(
-        summary.getSubmitUnseqInnerSpaceCompactionTaskNum());
-    
crossInnerSpaceCompactionTaskSelectedNum.set(summary.getSubmitCrossSpaceCompactionTaskNum());
+        context.getSubmitUnseqInnerSpaceCompactionTaskNum());
+    
crossInnerSpaceCompactionTaskSelectedNum.set(context.getSubmitCrossSpaceCompactionTaskNum());
     insertionCrossSpaceCompactionTaskSelectedNum.set(
-        summary.getSubmitInsertionCrossSpaceCompactionTaskNum());
-    
settleCompactionTaskSelectedNum.set(summary.getSubmitSettleCompactionTaskNum());
+        context.getSubmitInsertionCrossSpaceCompactionTaskNum());
+    
settleCompactionTaskSelectedNum.set(context.getSubmitSettleCompactionTaskNum());
   }
 
   public void updateCompactionTaskSelectionTimeCost(CompactionTaskType 
taskType, long time) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
index ed24c9be37e..4ba71db22d2 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
@@ -77,7 +77,7 @@ import 
org.apache.iotdb.db.storageengine.buffer.TimeSeriesMetadataCache;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskType;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.recover.CompactionRecoverManager;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.AbstractCompactionTask;
-import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleSummary;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleTaskManager;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduler;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskManager;
@@ -2597,11 +2597,11 @@ public class DataRegion implements IDataRegionForQuery {
       // Sort the time partition from largest to smallest
       timePartitions.sort(Comparator.reverseOrder());
 
-      CompactionScheduleSummary summary = new CompactionScheduleSummary();
+      CompactionScheduleContext context = new CompactionScheduleContext();
 
       // schedule insert compaction
-      trySubmitCount += executeInsertionCompaction(timePartitions);
-      summary.incrementSubmitTaskNum(CompactionTaskType.INSERTION, 
trySubmitCount);
+      trySubmitCount += executeInsertionCompaction(timePartitions, context);
+      context.incrementSubmitTaskNum(CompactionTaskType.INSERTION, 
trySubmitCount);
 
       // schedule the other compactions
       if (trySubmitCount == 0) {
@@ -2611,14 +2611,15 @@ public class DataRegion implements IDataRegionForQuery {
           CompactionScheduler.sharedLockCompactionSelection();
           try {
             trySubmitCount +=
-                CompactionScheduler.scheduleCompaction(tsFileManager, 
timePartition, summary);
+                CompactionScheduler.scheduleCompaction(tsFileManager, 
timePartition, context);
           } finally {
+            context.clearTimePartitionDeviceInfoCache();
             CompactionScheduler.sharedUnlockCompactionSelection();
           }
         }
       }
-      if (summary.hasSubmitTask()) {
-        
CompactionMetrics.getInstance().updateCompactionTaskSelectionNum(summary);
+      if (context.hasSubmitTask()) {
+        
CompactionMetrics.getInstance().updateCompactionTaskSelectionNum(context);
       }
     } catch (InterruptedException e) {
       throw e;
@@ -2639,7 +2640,7 @@ public class DataRegion implements IDataRegionForQuery {
     logger.info("[TTL] {}-{} Start ttl checking.", databaseName, dataRegionId);
     int trySubmitCount = 0;
     try {
-      CompactionScheduleSummary summary = new CompactionScheduleSummary();
+      CompactionScheduleContext context = new CompactionScheduleContext();
       List<Long> timePartitions = new 
ArrayList<>(tsFileManager.getTimePartitions());
       // Sort the time partition from smallest to largest
       Collections.sort(timePartitions);
@@ -2649,20 +2650,21 @@ public class DataRegion implements IDataRegionForQuery {
         try {
           trySubmitCount +=
               CompactionScheduler.tryToSubmitSettleCompactionTask(
-                  tsFileManager, timePartition, summary, true);
+                  tsFileManager, timePartition, context, true);
         } finally {
+          context.clearTimePartitionDeviceInfoCache();
           CompactionScheduler.sharedUnlockCompactionSelection();
         }
       }
-      if (summary.hasSubmitTask()) {
-        
CompactionMetrics.getInstance().updateCompactionTaskSelectionNum(summary);
+      if (context.hasSubmitTask()) {
+        
CompactionMetrics.getInstance().updateCompactionTaskSelectionNum(context);
       }
       logger.info(
           "[TTL] {}-{} Totally select {} all-outdated files and {} 
partial-outdated files.",
           databaseName,
           dataRegionId,
-          summary.getFullyDirtyFileNum(),
-          summary.getPartiallyDirtyFileNum());
+          context.getFullyDirtyFileNum(),
+          context.getPartiallyDirtyFileNum());
     } catch (InterruptedException e) {
       throw e;
     } catch (Throwable e) {
@@ -2673,24 +2675,31 @@ public class DataRegion implements IDataRegionForQuery {
     return trySubmitCount;
   }
 
-  protected int executeInsertionCompaction(List<Long> timePartitions) throws 
InterruptedException {
+  protected int executeInsertionCompaction(
+      List<Long> timePartitions, CompactionScheduleContext context) throws 
InterruptedException {
     int trySubmitCount = 0;
     CompactionScheduler.sharedLockCompactionSelection();
     try {
       while (true) {
         int currentSubmitCount = 0;
-        Phaser insertionTaskPhaser = new Phaser(1);
         for (long timePartition : timePartitions) {
-          currentSubmitCount +=
-              CompactionScheduler.scheduleInsertionCompaction(
-                  tsFileManager, timePartition, insertionTaskPhaser);
+          while (true) {
+            Phaser insertionTaskPhaser = new Phaser(1);
+            int selectedTaskNum =
+                CompactionScheduler.scheduleInsertionCompaction(
+                    tsFileManager, timePartition, insertionTaskPhaser, 
context);
+            
insertionTaskPhaser.awaitAdvanceInterruptibly(insertionTaskPhaser.arrive());
+            currentSubmitCount += selectedTaskNum;
+            if (selectedTaskNum <= 0) {
+              break;
+            }
+          }
+          context.clearTimePartitionDeviceInfoCache();
         }
-        trySubmitCount += currentSubmitCount;
-        
insertionTaskPhaser.awaitAdvanceInterruptibly(insertionTaskPhaser.arrive());
-        if (currentSubmitCount != 0) {
-          continue;
+        if (currentSubmitCount <= 0) {
+          break;
         }
-        break;
+        trySubmitCount += currentSubmitCount;
       }
     } catch (InterruptedException e) {
       throw e;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleSummary.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleContext.java
similarity index 80%
rename from 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleSummary.java
rename to 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleContext.java
index bb2d31455b0..205d6b620a4 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleSummary.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleContext.java
@@ -22,8 +22,15 @@ package 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskType;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.AbstractCompactionTask;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.SettleCompactionTask;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.DeviceInfo;
+import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 
-public class CompactionScheduleSummary {
+import org.apache.tsfile.file.metadata.IDeviceID;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class CompactionScheduleContext {
   private int submitSeqInnerSpaceCompactionTaskNum = 0;
   private int submitUnseqInnerSpaceCompactionTaskNum = 0;
   private int submitCrossSpaceCompactionTaskNum = 0;
@@ -37,6 +44,25 @@ public class CompactionScheduleSummary {
 
   // end region
 
+  private final Map<TsFileResource, Map<IDeviceID, DeviceInfo>> 
partitionFileDeviceInfoCache;
+
+  public CompactionScheduleContext() {
+    this.partitionFileDeviceInfoCache = new HashMap<>();
+  }
+
+  public void addResourceDeviceTimeIndex(
+      TsFileResource tsFileResource, Map<IDeviceID, DeviceInfo> deviceInfoMap) 
{
+    partitionFileDeviceInfoCache.put(tsFileResource, deviceInfoMap);
+  }
+
+  public Map<IDeviceID, DeviceInfo> getResourceDeviceInfo(TsFileResource 
resource) {
+    return partitionFileDeviceInfoCache.get(resource);
+  }
+
+  public void clearTimePartitionDeviceInfoCache() {
+    partitionFileDeviceInfoCache.clear();
+  }
+
   public void incrementSubmitTaskNum(CompactionTaskType taskType, int num) {
     switch (taskType) {
       case INNER_SEQ:
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduler.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduler.java
index 43f706173bb..589ea57c6c3 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduler.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduler.java
@@ -90,11 +90,11 @@ public class CompactionScheduler {
    *
    * @param tsFileManager tsfileManager that contains source files
    * @param timePartition the time partition to execute the selection
-   * @param summary the summary of compaction schedule
+   * @param context the context of compaction schedule
    * @return the count of submitted task
    */
   public static int scheduleCompaction(
-      TsFileManager tsFileManager, long timePartition, 
CompactionScheduleSummary summary)
+      TsFileManager tsFileManager, long timePartition, 
CompactionScheduleContext context)
       throws InterruptedException {
     if (!tsFileManager.isAllowCompaction()) {
       return 0;
@@ -104,12 +104,12 @@ public class CompactionScheduler {
     int trySubmitCount = 0;
     try {
       trySubmitCount +=
-          tryToSubmitInnerSpaceCompactionTask(tsFileManager, timePartition, 
true, summary);
+          tryToSubmitInnerSpaceCompactionTask(tsFileManager, timePartition, 
true, context);
       trySubmitCount +=
-          tryToSubmitInnerSpaceCompactionTask(tsFileManager, timePartition, 
false, summary);
-      trySubmitCount += tryToSubmitCrossSpaceCompactionTask(tsFileManager, 
timePartition, summary);
+          tryToSubmitInnerSpaceCompactionTask(tsFileManager, timePartition, 
false, context);
+      trySubmitCount += tryToSubmitCrossSpaceCompactionTask(tsFileManager, 
timePartition, context);
       trySubmitCount +=
-          tryToSubmitSettleCompactionTask(tsFileManager, timePartition, 
summary, false);
+          tryToSubmitSettleCompactionTask(tsFileManager, timePartition, 
context, false);
     } catch (InterruptedException e) {
       throw e;
     } catch (Throwable e) {
@@ -121,18 +121,22 @@ public class CompactionScheduler {
   @TestOnly
   public static void scheduleCompaction(TsFileManager tsFileManager, long 
timePartition)
       throws InterruptedException {
-    scheduleCompaction(tsFileManager, timePartition, new 
CompactionScheduleSummary());
+    scheduleCompaction(tsFileManager, timePartition, new 
CompactionScheduleContext());
   }
 
   public static int scheduleInsertionCompaction(
-      TsFileManager tsFileManager, long timePartition, Phaser 
insertionTaskPhaser)
+      TsFileManager tsFileManager,
+      long timePartition,
+      Phaser insertionTaskPhaser,
+      CompactionScheduleContext context)
       throws InterruptedException {
     if (!tsFileManager.isAllowCompaction()) {
       return 0;
     }
     int trySubmitCount = 0;
     trySubmitCount +=
-        tryToSubmitInsertionCompactionTask(tsFileManager, timePartition, 
insertionTaskPhaser);
+        tryToSubmitInsertionCompactionTask(
+            tsFileManager, timePartition, insertionTaskPhaser, context);
     return trySubmitCount;
   }
 
@@ -140,7 +144,7 @@ public class CompactionScheduler {
       TsFileManager tsFileManager,
       long timePartition,
       boolean sequence,
-      CompactionScheduleSummary summary)
+      CompactionScheduleContext context)
       throws InterruptedException {
     if ((!config.isEnableSeqSpaceCompaction() && sequence)
         || (!config.isEnableUnseqSpaceCompaction() && !sequence)) {
@@ -157,12 +161,14 @@ public class CompactionScheduler {
       innerSpaceCompactionSelector =
           config
               .getInnerSequenceCompactionSelector()
-              .createInstance(storageGroupName, dataRegionId, timePartition, 
tsFileManager);
+              .createInstance(
+                  storageGroupName, dataRegionId, timePartition, 
tsFileManager, context);
     } else {
       innerSpaceCompactionSelector =
           config
               .getInnerUnsequenceCompactionSelector()
-              .createInstance(storageGroupName, dataRegionId, timePartition, 
tsFileManager);
+              .createInstance(
+                  storageGroupName, dataRegionId, timePartition, 
tsFileManager, context);
     }
     long startTime = System.currentTimeMillis();
     List<InnerSpaceCompactionTask> innerSpaceTaskList =
@@ -179,7 +185,7 @@ public class CompactionScheduler {
     // the name of this variable is trySubmitCount, because the task submitted 
to the queue could be
     // evicted due to the low priority of the task
     int trySubmitCount = addTaskToWaitingQueue(innerSpaceTaskList);
-    summary.incrementSubmitTaskNum(
+    context.incrementSubmitTaskNum(
         sequence ? CompactionTaskType.INNER_SEQ : 
CompactionTaskType.INNER_UNSEQ, trySubmitCount);
     return trySubmitCount;
   }
@@ -218,7 +224,10 @@ public class CompactionScheduler {
   }
 
   private static int tryToSubmitInsertionCompactionTask(
-      TsFileManager tsFileManager, long timePartition, Phaser 
insertionTaskPhaser)
+      TsFileManager tsFileManager,
+      long timePartition,
+      Phaser insertionTaskPhaser,
+      CompactionScheduleContext context)
       throws InterruptedException {
     if (!config.isEnableCrossSpaceCompaction()) {
       return 0;
@@ -227,7 +236,7 @@ public class CompactionScheduler {
     String dataRegionId = tsFileManager.getDataRegionId();
     RewriteCrossSpaceCompactionSelector selector =
         new RewriteCrossSpaceCompactionSelector(
-            logicalStorageGroupName, dataRegionId, timePartition, 
tsFileManager);
+            logicalStorageGroupName, dataRegionId, timePartition, 
tsFileManager, context);
 
     List<CrossCompactionTaskResource> selectedTasks =
         selector.selectInsertionCrossSpaceTask(
@@ -253,7 +262,7 @@ public class CompactionScheduler {
   }
 
   private static int tryToSubmitCrossSpaceCompactionTask(
-      TsFileManager tsFileManager, long timePartition, 
CompactionScheduleSummary summary)
+      TsFileManager tsFileManager, long timePartition, 
CompactionScheduleContext context)
       throws InterruptedException {
     if (!config.isEnableCrossSpaceCompaction()) {
       return 0;
@@ -297,14 +306,14 @@ public class CompactionScheduler {
       task.setCompactionConfigVersion(compactionConfigVersionWhenSelectTask);
       trySubmitCount = addTaskToWaitingQueue(Collections.singletonList(task));
     }
-    summary.incrementSubmitTaskNum(CompactionTaskType.CROSS, trySubmitCount);
+    context.incrementSubmitTaskNum(CompactionTaskType.CROSS, trySubmitCount);
     return trySubmitCount;
   }
 
   public static int tryToSubmitSettleCompactionTask(
       TsFileManager tsFileManager,
       long timePartition,
-      CompactionScheduleSummary summary,
+      CompactionScheduleContext context,
       boolean heavySelect)
       throws InterruptedException {
     if (!config.isEnableSeqSpaceCompaction() && 
!config.isEnableUnseqSpaceCompaction()) {
@@ -335,7 +344,7 @@ public class CompactionScheduler {
     int trySubmitCount = 0;
     for (AbstractCompactionTask task : taskList) {
       if (CompactionTaskManager.getInstance().addTaskToWaitingQueue(task)) {
-        summary.updateTTLInfo(task);
+        context.updateTTLInfo(task);
         trySubmitCount++;
       }
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/InnerSequenceCompactionSelector.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/InnerSequenceCompactionSelector.java
index cc27d4f2774..58b04bf9eb0 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/InnerSequenceCompactionSelector.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/InnerSequenceCompactionSelector.java
@@ -19,6 +19,7 @@
 
 package 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant;
 
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.IInnerSeqSpaceSelector;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.SizeTieredCompactionSelector;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager;
@@ -39,7 +40,8 @@ public enum InnerSequenceCompactionSelector {
       String storageGroupName,
       String dataRegionId,
       long timePartition,
-      TsFileManager tsFileManager) {
+      TsFileManager tsFileManager,
+      CompactionScheduleContext context) {
     switch (this) {
       case SIZE_TIERED:
       default:
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/InnerUnsequenceCompactionSelector.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/InnerUnsequenceCompactionSelector.java
index b35ef274a51..722a852a62e 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/InnerUnsequenceCompactionSelector.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/InnerUnsequenceCompactionSelector.java
@@ -19,6 +19,7 @@
 
 package 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant;
 
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.IInnerUnseqSpaceSelector;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.SizeTieredCompactionSelector;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager;
@@ -40,7 +41,8 @@ public enum InnerUnsequenceCompactionSelector {
       String storageGroupName,
       String dataRegionId,
       long timePartition,
-      TsFileManager tsFileManager) {
+      TsFileManager tsFileManager,
+      CompactionScheduleContext context) {
     switch (this) {
       case SIZE_TIERED:
       default:
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java
index 30a59935588..2c66da65d4e 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.MergeException;
 import org.apache.iotdb.db.service.metrics.CompactionMetrics;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskType;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskManager;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.ICompactionSelector;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.ICrossSpaceSelector;
@@ -38,6 +39,7 @@ import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.Ts
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 import 
org.apache.iotdb.db.storageengine.dataregion.tsfile.generator.TsFileNameGenerator;
+import 
org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.ITimeIndex;
 import org.apache.iotdb.db.storageengine.rescon.memory.SystemInfo;
 
 import org.apache.tsfile.exception.StopReadTsFileByInterruptException;
@@ -63,12 +65,14 @@ public class RewriteCrossSpaceCompactionSelector implements 
ICrossSpaceSelector
   protected TsFileManager tsFileManager;
 
   private static boolean hasPrintedLog = false;
+  private static int maxDeserializedFileNumToCheckInsertionCandidateValid = 
500;
 
   private final long memoryBudget;
   private final int maxCrossCompactionFileNum;
   private final long maxCrossCompactionFileSize;
 
   private final AbstractCrossSpaceEstimator compactionEstimator;
+  private CompactionScheduleContext context;
 
   public RewriteCrossSpaceCompactionSelector(
       String logicalStorageGroupName,
@@ -93,6 +97,17 @@ public class RewriteCrossSpaceCompactionSelector implements 
ICrossSpaceSelector
         (AbstractCrossSpaceEstimator)
             ICompactionSelector.getCompactionEstimator(
                 
IoTDBDescriptor.getInstance().getConfig().getCrossCompactionPerformer(), false);
+    this.context = null;
+  }
+
+  public RewriteCrossSpaceCompactionSelector(
+      String logicalStorageGroupName,
+      String dataRegionId,
+      long timePartition,
+      TsFileManager tsFileManager,
+      CompactionScheduleContext context) {
+    this(logicalStorageGroupName, dataRegionId, timePartition, tsFileManager);
+    this.context = context;
   }
 
   /**
@@ -335,7 +350,8 @@ public class RewriteCrossSpaceCompactionSelector implements 
ICrossSpaceSelector
     // CrossCompactionTaskResources in this method.
     // Add read lock for candidate source files to avoid being deleted during 
the selection.
     CrossSpaceCompactionCandidate candidate =
-        new CrossSpaceCompactionCandidate(sequenceFileList, 
unsequenceFileList, ttlLowerBound);
+        new CrossSpaceCompactionCandidate(
+            sequenceFileList, unsequenceFileList, ttlLowerBound, context);
     try {
       CrossCompactionTaskResource taskResources;
       if (isInsertionTask) {
@@ -554,7 +570,10 @@ public class RewriteCrossSpaceCompactionSelector 
implements ICrossSpaceSelector
       }
       for (int i = 0; i < selectedUnseqFileIndex; i++) {
         TsFileResourceCandidate unseqFile = unseqFiles.get(i);
-        if (isOverlap(selectedUnseqFile, unseqFile)) {
+        if (isOverlap(
+            selectedUnseqFile,
+            unseqFile,
+            selectedUnseqFileIndex > 
maxDeserializedFileNumToCheckInsertionCandidateValid)) {
           selectedUnseqFile.resource.setInsertionCompactionTaskCandidate(
               InsertionCompactionCandidateStatus.NOT_VALID);
           return false;
@@ -566,17 +585,33 @@ public class RewriteCrossSpaceCompactionSelector 
implements ICrossSpaceSelector
     }
 
     private boolean isOverlap(
-        TsFileResourceCandidate candidate1, TsFileResourceCandidate 
candidate2) throws IOException {
+        TsFileResourceCandidate candidate1,
+        TsFileResourceCandidate candidate2,
+        boolean loadDeviceTimeIndex)
+        throws IOException {
       TimeRange timeRangeOfFile1 =
           new TimeRange(
               candidate1.resource.getFileStartTime(), 
candidate1.resource.getFileEndTime());
       TimeRange timeRangeOfFile2 =
           new TimeRange(
               candidate2.resource.getFileStartTime(), 
candidate2.resource.getFileEndTime());
-      if (!timeRangeOfFile1.overlaps(timeRangeOfFile2)) {
+      boolean fileTimeOverlap = timeRangeOfFile1.overlaps(timeRangeOfFile2);
+      if (!fileTimeOverlap) {
         return false;
       }
 
+      // TimeIndex may be degraded after this check, but it will not affect 
the correctness of task
+      // selection
+      boolean candidate1NeedDeserialize =
+          !candidate1.hasDetailedDeviceInfo()
+              && candidate1.resource.getTimeIndexType() == 
ITimeIndex.FILE_TIME_INDEX_TYPE;
+      boolean candidate2NeedDeserialize =
+          !candidate2.hasDetailedDeviceInfo()
+              && candidate2.resource.getTimeIndexType() == 
ITimeIndex.FILE_TIME_INDEX_TYPE;
+      if (!loadDeviceTimeIndex && (candidate1NeedDeserialize || 
candidate2NeedDeserialize)) {
+        return true;
+      }
+
       for (DeviceInfo device : candidate2.getDevices()) {
         IDeviceID deviceId = device.deviceId;
         if (!candidate1.containsDevice(deviceId)) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/utils/CrossSpaceCompactionCandidate.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/utils/CrossSpaceCompactionCandidate.java
index de75a3d9d21..e4bff941485 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/utils/CrossSpaceCompactionCandidate.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/utils/CrossSpaceCompactionCandidate.java
@@ -19,6 +19,8 @@
 
 package org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils;
 
+import org.apache.iotdb.commons.utils.TestOnly;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 import 
org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResourceStatus;
 
@@ -40,19 +42,33 @@ public class CrossSpaceCompactionCandidate {
   private int nextUnseqFileIndex;
   private CrossCompactionTaskResourceSplit nextSplit;
   private long ttlLowerBound = Long.MIN_VALUE;
+  private CompactionScheduleContext context = null;
 
+  @TestOnly
   public CrossSpaceCompactionCandidate(
       List<TsFileResource> seqFiles, List<TsFileResource> unseqFiles) {
-    init(seqFiles, unseqFiles);
+    init(seqFiles, unseqFiles, null);
   }
 
   public CrossSpaceCompactionCandidate(
       List<TsFileResource> seqFiles, List<TsFileResource> unseqFiles, long 
ttlLowerBound) {
+    this(seqFiles, unseqFiles, ttlLowerBound, null);
+  }
+
+  public CrossSpaceCompactionCandidate(
+      List<TsFileResource> seqFiles,
+      List<TsFileResource> unseqFiles,
+      long ttlLowerBound,
+      CompactionScheduleContext context) {
     this.ttlLowerBound = ttlLowerBound;
-    init(seqFiles, unseqFiles);
+    init(seqFiles, unseqFiles, context);
   }
 
-  private void init(List<TsFileResource> seqFiles, List<TsFileResource> 
unseqFiles) {
+  private void init(
+      List<TsFileResource> seqFiles,
+      List<TsFileResource> unseqFiles,
+      CompactionScheduleContext context) {
+    this.context = context;
     this.seqFiles = copySeqResource(seqFiles);
     // it is necessary that unseqFiles are all available
     this.unseqFiles = filterUnseqResource(unseqFiles);
@@ -157,7 +173,7 @@ public class CrossSpaceCompactionCandidate {
   private List<TsFileResourceCandidate> copySeqResource(List<TsFileResource> 
seqFiles) {
     List<TsFileResourceCandidate> ret = new ArrayList<>();
     for (TsFileResource resource : seqFiles) {
-      ret.add(new TsFileResourceCandidate(resource));
+      ret.add(new TsFileResourceCandidate(resource, context));
     }
     return ret;
   }
@@ -174,7 +190,7 @@ public class CrossSpaceCompactionCandidate {
       if (resource.getStatus() != TsFileResourceStatus.NORMAL) {
         break;
       } else if (resource.stillLives(ttlLowerBound)) {
-        ret.add(new TsFileResourceCandidate(resource));
+        ret.add(new TsFileResourceCandidate(resource, context));
       }
     }
     return ret;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/utils/TsFileResourceCandidate.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/utils/TsFileResourceCandidate.java
index 27ea59ba4b3..f89a778be21 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/utils/TsFileResourceCandidate.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/utils/TsFileResourceCandidate.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils;
 
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileRepairStatus;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 import 
org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResourceStatus;
@@ -46,8 +47,10 @@ public class TsFileResourceCandidate {
   private Map<IDeviceID, DeviceInfo> deviceInfoMap;
 
   private boolean hasDetailedDeviceInfo;
+  private CompactionScheduleContext compactionScheduleContext;
 
-  protected TsFileResourceCandidate(TsFileResource tsFileResource) {
+  protected TsFileResourceCandidate(
+      TsFileResource tsFileResource, CompactionScheduleContext context) {
     this.resource = tsFileResource;
     this.selected = false;
     // although we do the judgement here, the task should be validated before 
executing because
@@ -55,6 +58,7 @@ public class TsFileResourceCandidate {
     this.isValidCandidate =
         tsFileResource.getStatus() == TsFileResourceStatus.NORMAL
             && tsFileResource.getTsFileRepairStatus() == 
TsFileRepairStatus.NORMAL;
+    this.compactionScheduleContext = context;
   }
 
   /**
@@ -67,6 +71,10 @@ public class TsFileResourceCandidate {
   }
 
   private void prepareDeviceInfos() throws IOException {
+    if (deviceInfoMap == null && compactionScheduleContext != null) {
+      // get device info from cache
+      deviceInfoMap = 
compactionScheduleContext.getResourceDeviceInfo(this.resource);
+    }
     if (deviceInfoMap != null) {
       return;
     }
@@ -98,6 +106,9 @@ public class TsFileResourceCandidate {
       }
     }
     hasDetailedDeviceInfo = true;
+    if (compactionScheduleContext != null) {
+      compactionScheduleContext.addResourceDeviceTimeIndex(this.resource, 
deviceInfoMap);
+    }
   }
 
   public void markAsSelected() {
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLTest.java
index 3d6f49e6729..04c45845eef 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLTest.java
@@ -44,7 +44,7 @@ import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.ShowTTLStatement;
 import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.UnSetTTLStatement;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.reader.IDataBlockReader;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.reader.SeriesDataBlockReader;
-import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleSummary;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduler;
 import 
org.apache.iotdb.db.storageengine.dataregion.flush.TsFileFlushPolicy.DirectFlushPolicy;
 import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource;
@@ -328,7 +328,7 @@ public class TTLTest {
     DataNodeTTLCache.getInstance().setTTL(sg1, 500);
     for (long timePartition : dataRegion.getTimePartitions()) {
       CompactionScheduler.tryToSubmitSettleCompactionTask(
-          dataRegion.getTsFileManager(), timePartition, new 
CompactionScheduleSummary(), true);
+          dataRegion.getTsFileManager(), timePartition, new 
CompactionScheduleContext(), true);
     }
     long totalWaitingTime = 0;
     while (dataRegion.getTsFileManager().getTsFileList(true).size()
@@ -419,7 +419,7 @@ public class TTLTest {
     DataNodeTTLCache.getInstance().setTTL(sg1, 1);
     for (long timePartition : dataRegion.getTimePartitions()) {
       CompactionScheduler.tryToSubmitSettleCompactionTask(
-          dataRegion.getTsFileManager(), timePartition, new 
CompactionScheduleSummary(), true);
+          dataRegion.getTsFileManager(), timePartition, new 
CompactionScheduleContext(), true);
     }
     long totalWaitingTime = 0;
     while (dataRegion.getTsFileManager().getTsFileList(true).size()
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
index cafe8ac2768..1eff75fe6b0 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
@@ -2260,7 +2260,7 @@ public class 
CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
         IoTDBDescriptor.getInstance()
             .getConfig()
             .getInnerSequenceCompactionSelector()
-            .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+            .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager, null);
     Assert.assertEquals(0, 
innerSelector.selectInnerSpaceTask(targetResources).size());
 
     // first compaction task finishes successfully
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionTest.java
index e4082bbb73b..b286f7bdfa4 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionTest.java
@@ -26,6 +26,7 @@ import 
org.apache.iotdb.db.storageengine.dataregion.DataRegion;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactionTest;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.AbstractCompactionTask;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.InsertionCrossSpaceCompactionTask;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionWorker;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.comparator.DefaultCompactionTaskComparatorImpl;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
@@ -513,7 +514,8 @@ public class InsertionCrossSpaceCompactionTest extends 
AbstractCompactionTest {
 
     public int executeInsertionCompaction() throws InterruptedException {
       return super.executeInsertionCompaction(
-          new ArrayList<>(this.getTsFileManager().getTimePartitions()));
+          new ArrayList<>(this.getTsFileManager().getTimePartitions()),
+          new CompactionScheduleContext());
     }
   }
 }
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerCompactionSchedulerTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerCompactionSchedulerTest.java
index 3237ccb57ae..de0937ea95c 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerCompactionSchedulerTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerCompactionSchedulerTest.java
@@ -22,7 +22,7 @@ import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactionTest;
-import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleSummary;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduler;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskManager;
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager;
@@ -96,7 +96,7 @@ public class InnerCompactionSchedulerTest extends 
AbstractCompactionTest {
     tsFileManager.addAll(seqResources, true);
 
     CompactionScheduler.tryToSubmitInnerSpaceCompactionTask(
-        tsFileManager, 0L, true, new CompactionScheduleSummary());
+        tsFileManager, 0L, true, new CompactionScheduleContext());
     try {
       Thread.sleep(5000);
     } catch (Exception e) {
@@ -118,7 +118,7 @@ public class InnerCompactionSchedulerTest extends 
AbstractCompactionTest {
     TsFileManager tsFileManager = new TsFileManager("testSG", "0", "tmp");
     tsFileManager.addAll(seqResources, true);
     CompactionScheduler.tryToSubmitInnerSpaceCompactionTask(
-        tsFileManager, 0L, true, new CompactionScheduleSummary());
+        tsFileManager, 0L, true, new CompactionScheduleContext());
 
     long waitingTime = 0;
     while (CompactionTaskManager.getInstance().getExecutingTaskCount() != 0) {
@@ -148,7 +148,7 @@ public class InnerCompactionSchedulerTest extends 
AbstractCompactionTest {
     TsFileManager tsFileManager = new TsFileManager("testSG", "0", "tmp");
     tsFileManager.addAll(seqResources, true);
     CompactionScheduler.tryToSubmitInnerSpaceCompactionTask(
-        tsFileManager, 0L, true, new CompactionScheduleSummary());
+        tsFileManager, 0L, true, new CompactionScheduleContext());
     long waitingTime = 0;
     while (CompactionTaskManager.getInstance().getExecutingTaskCount() != 0) {
       try {
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairUnsortedFileCompactionTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairUnsortedFileCompactionTest.java
index 27b12ce29fc..4d422ad1d64 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairUnsortedFileCompactionTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairUnsortedFileCompactionTest.java
@@ -31,7 +31,7 @@ import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.CrossSpaceCompactionTask;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.InnerSpaceCompactionTask;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.RepairUnsortedFileCompactionTask;
-import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleSummary;
+import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleTaskManager;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduler;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskManager;
@@ -320,7 +320,7 @@ public class RepairUnsortedFileCompactionTest extends 
AbstractRepairDataTest {
 
     long initialFinishedCompactionTaskNum =
         CompactionTaskManager.getInstance().getFinishedTaskNum();
-    CompactionScheduleSummary summary = new CompactionScheduleSummary();
+    CompactionScheduleContext summary = new CompactionScheduleContext();
     CompactionScheduler.scheduleCompaction(tsFileManager, 0, summary);
     Assert.assertEquals(2, summary.getSubmitSeqInnerSpaceCompactionTaskNum());
 
@@ -395,7 +395,7 @@ public class RepairUnsortedFileCompactionTest extends 
AbstractRepairDataTest {
 
     long initialFinishedCompactionTaskNum =
         CompactionTaskManager.getInstance().getFinishedTaskNum();
-    CompactionScheduleSummary summary = new CompactionScheduleSummary();
+    CompactionScheduleContext summary = new CompactionScheduleContext();
     CompactionScheduler.scheduleCompaction(tsFileManager, 0, summary);
     Assert.assertEquals(2, 
summary.getSubmitUnseqInnerSpaceCompactionTaskNum());
 
@@ -471,7 +471,7 @@ public class RepairUnsortedFileCompactionTest extends 
AbstractRepairDataTest {
 
     long initialFinishedCompactionTaskNum =
         CompactionTaskManager.getInstance().getFinishedTaskNum();
-    CompactionScheduleSummary summary = new CompactionScheduleSummary();
+    CompactionScheduleContext summary = new CompactionScheduleContext();
     CompactionScheduler.scheduleCompaction(tsFileManager, 0, summary);
     Assert.assertEquals(1, summary.getSubmitSeqInnerSpaceCompactionTaskNum());
     Assert.assertEquals(1, 
summary.getSubmitUnseqInnerSpaceCompactionTaskNum());


Reply via email to