You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2024/09/20 09:24:00 UTC
(iotdb) branch master updated: Keep all null rows in table model compaction (#13523)
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 598cabe238b Keep all null rows in table model compaction (#13523)
598cabe238b is described below
commit 598cabe238b89378c4e439628257cb819fabd9b8
Author: shuwenwei <55...@users.noreply.github.com>
AuthorDate: Fri Sep 20 17:23:54 2024 +0800
Keep all null rows in table model compaction (#13523)
* keep all null rows in table model compaction
* add ut
* adddeletion ut
* add ut
* revert some ut
* fix ut
* add context in cross space compaction task selection
* fix bug
* spotless
* modify repair task
* update tsfile version
---
.../operator/source/AlignedSeriesScanOperator.java | 3 +-
.../operator/source/AlignedSeriesScanUtil.java | 7 +-
.../source/relational/TableScanOperator.java | 3 +-
.../db/storageengine/dataregion/DataRegion.java | 8 +-
.../execute/performer/ICompactionPerformer.java | 2 +
.../performer/impl/FastCompactionPerformer.java | 13 +-
.../impl/ReadChunkCompactionPerformer.java | 11 +-
.../impl/ReadPointCompactionPerformer.java | 10 +-
.../RepairUnsortedFileCompactionPerformer.java | 3 +-
.../task/RepairUnsortedFileCompactionTask.java | 20 +-
.../subtask/FastCompactionPerformerSubTask.java | 13 +-
.../execute/utils/MultiTsFileDeviceIterator.java | 42 ++-
...BatchedFastAlignedSeriesCompactionExecutor.java | 56 ++--
...edReadChunkAlignedSeriesCompactionExecutor.java | 60 ++--
.../utils/AlignedSeriesBatchCompactionUtils.java | 20 +-
... CompactionAlignedPageLazyLoadPointReader.java} | 49 ++--
.../fast/FastAlignedSeriesCompactionExecutor.java | 19 +-
.../fast/reader/CompactionAlignedChunkReader.java | 79 +++---
.../ReadChunkAlignedSeriesCompactionExecutor.java | 85 +++---
.../compaction/repair/RepairDataFileScanUtil.java | 2 +-
.../repair/RepairTimePartitionScanTask.java | 6 +-
.../schedule/CompactionScheduleContext.java | 40 ++-
.../compaction/schedule/CompactionScheduler.java | 15 +-
.../selector/constant/CrossCompactionSelector.java | 6 +-
.../constant/InnerSequenceCompactionSelector.java | 2 +-
.../InnerUnsequenceCompactionSelector.java | 2 +-
.../impl/NewSizeTieredCompactionSelector.java | 4 +-
.../impl/RewriteCrossSpaceCompactionSelector.java | 15 +-
.../selector/impl/SettleSelectorImpl.java | 16 +-
.../impl/SizeTieredCompactionSelector.java | 21 +-
.../utils/CrossSpaceCompactionCandidate.java | 4 +-
.../selector/utils/TsFileResourceCandidate.java | 1 +
.../compaction/AbstractCompactionTest.java | 3 +-
.../CrossSpaceCompactionWithUnusualCasesTest.java | 37 ++-
...InconsistentCompressionTypeAndEncodingTest.java | 3 +-
.../FastInnerCompactionPerformerTest.java | 2 +-
.../cross/CrossSpaceCompactionSelectorTest.java | 63 +++--
.../CrossSpaceCompactionWithFastPerformerTest.java | 10 +-
...eCompactionWithFastPerformerValidationTest.java | 136 +++++----
...sSpaceCompactionWithReadPointPerformerTest.java | 10 +-
...actionWithReadPointPerformerValidationTest.java | 130 +++++----
.../InsertionCrossSpaceCompactionRecoverTest.java | 13 +-
.../InsertionCrossSpaceCompactionSelectorTest.java | 105 ++++---
.../cross/InsertionCrossSpaceCompactionTest.java | 15 +-
.../compaction/cross/MergeUpgradeTest.java | 4 +-
.../cross/RewriteCompactionFileSelectorTest.java | 42 +--
.../inner/InnerSpaceCompactionSelectorTest.java | 25 +-
.../SizeTieredCompactionSelectorTest.java | 7 +-
.../repair/RepairUnsortedFileCompactionTest.java | 28 +-
.../settle/SettleCompactionSelectorTest.java | 63 +++--
.../settle/SettleCompactionTaskTest.java | 4 +-
.../tablemodel/CompactionWithAllNullRowsTest.java | 315 +++++++++++++++++++++
.../compaction/utils/BatchCompactionUtilsTest.java | 13 +-
.../compaction/utils/CompactionCheckerUtils.java | 3 +-
.../utils/MultiTsFileDeviceIteratorTest.java | 38 +--
pom.xml | 2 +-
56 files changed, 1175 insertions(+), 533 deletions(-)
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java
index 51fe0b0e952..1fc8014b3ea 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java
@@ -64,8 +64,7 @@ public class AlignedSeriesScanOperator extends AbstractSeriesScanOperator {
seriesScanOptions,
context.getInstanceContext(),
queryAllSensors,
- dataTypes,
- true);
+ dataTypes);
this.valueColumnCount = seriesPath.getColumnNum();
this.maxReturnSize =
Math.min(
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanUtil.java
index 6dff940b800..f7ddaee472e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanUtil.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanUtil.java
@@ -59,7 +59,7 @@ public class AlignedSeriesScanUtil extends SeriesScanUtil {
Ordering scanOrder,
SeriesScanOptions scanOptions,
FragmentInstanceContext context) {
- this(seriesPath, scanOrder, scanOptions, context, false, null, true);
+ this(seriesPath, scanOrder, scanOptions, context, false, null);
}
public AlignedSeriesScanUtil(
@@ -68,8 +68,7 @@ public class AlignedSeriesScanUtil extends SeriesScanUtil {
SeriesScanOptions scanOptions,
FragmentInstanceContext context,
boolean queryAllSensors,
- List<TSDataType> givenDataTypes,
- boolean ignoreAllNullRows) {
+ List<TSDataType> givenDataTypes) {
super(seriesPath, scanOrder, scanOptions, context);
isAligned = true;
this.dataTypes =
@@ -79,7 +78,7 @@ public class AlignedSeriesScanUtil extends SeriesScanUtil {
.map(IMeasurementSchema::getType)
.collect(Collectors.toList());
this.queryAllSensors = queryAllSensors;
- this.ignoreAllNullRows = ignoreAllNullRows;
+ this.ignoreAllNullRows = context.isIgnoreAllNullRows();
}
@Override
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TableScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TableScanOperator.java
index d3efac0a1e3..90982549716 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TableScanOperator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TableScanOperator.java
@@ -306,8 +306,7 @@ public class TableScanOperator extends AbstractSeriesScanOperator {
seriesScanOptions,
operatorContext.getInstanceContext(),
true,
- measurementColumnTSDataTypes,
- false);
+ measurementColumnTSDataTypes);
}
public static AlignedFullPath constructAlignedPath(
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 5915be05207..062e8225ea2 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
@@ -313,6 +313,8 @@ public class DataRegion implements IDataRegionForQuery {
private final AtomicBoolean isCompactionSelecting = new AtomicBoolean(false);
+ private boolean isTreeModel;
+
private static final QueryResourceMetricSet QUERY_RESOURCE_METRIC_SET =
QueryResourceMetricSet.getInstance();
@@ -333,6 +335,7 @@ public class DataRegion implements IDataRegionForQuery {
this.dataRegionId = dataRegionId;
this.databaseName = databaseName;
this.fileFlushPolicy = fileFlushPolicy;
+ this.isTreeModel = this.databaseName.startsWith("root.");
acquireDirectBufferMemory();
dataRegionSysDir = SystemFileFactory.INSTANCE.getFile(systemDir, dataRegionId);
@@ -383,6 +386,7 @@ public class DataRegion implements IDataRegionForQuery {
this.dataRegionId = id;
this.tsFileManager = new TsFileManager(databaseName, id, "");
this.partitionMaxFileVersions = new HashMap<>();
+ this.isTreeModel = this.databaseName.startsWith("root.");
partitionMaxFileVersions.put(0L, 0L);
}
@@ -2765,7 +2769,7 @@ public class DataRegion implements IDataRegionForQuery {
// Sort the time partition from largest to smallest
timePartitions.sort(Comparator.reverseOrder());
- CompactionScheduleContext context = new CompactionScheduleContext();
+ CompactionScheduleContext context = new CompactionScheduleContext(this.isTreeModel);
// schedule insert compaction
trySubmitCount += executeInsertionCompaction(timePartitions, context);
@@ -2808,7 +2812,7 @@ public class DataRegion implements IDataRegionForQuery {
logger.info("[TTL] {}-{} Start ttl checking.", databaseName, dataRegionId);
int trySubmitCount = 0;
try {
- CompactionScheduleContext context = new CompactionScheduleContext();
+ CompactionScheduleContext context = new CompactionScheduleContext(this.isTreeModel);
List<Long> timePartitions = new ArrayList<>(tsFileManager.getTimePartitions());
// Sort the time partition from smallest to largest
Collections.sort(timePartitions);
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/ICompactionPerformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/ICompactionPerformer.java
index 1dc24d12f70..091a8ed1e5a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/ICompactionPerformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/ICompactionPerformer.java
@@ -40,6 +40,8 @@ public interface ICompactionPerformer {
void setSummary(CompactionTaskSummary summary);
+ void setIgnoreAllNullRows(boolean ignoreAllNullRows);
+
default void setSourceFiles(List<TsFileResource> files) {
throw new IllegalSourceFileTypeException(
"Cannot set single type of source files to this kind of performer");
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/FastCompactionPerformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/FastCompactionPerformer.java
index 59bc2d4dae1..9708b4d80e8 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/FastCompactionPerformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/FastCompactionPerformer.java
@@ -91,6 +91,7 @@ public class FastCompactionPerformer
modificationCache = new ConcurrentHashMap<>();
private final boolean isCrossCompaction;
+ private boolean ignoreAllNullRows = true;
public FastCompactionPerformer(
List<TsFileResource> seqFiles,
@@ -115,7 +116,7 @@ public class FastCompactionPerformer
public void perform() throws Exception {
this.subTaskSummary.setTemporalFileNum(targetFiles.size());
try (MultiTsFileDeviceIterator deviceIterator =
- new MultiTsFileDeviceIterator(seqFiles, unseqFiles, readerCacheMap);
+ new MultiTsFileDeviceIterator(seqFiles, unseqFiles, readerCacheMap, ignoreAllNullRows);
AbstractCompactionWriter compactionWriter =
isCrossCompaction
? new FastCrossCompactionWriter(targetFiles, seqFiles, readerCacheMap)
@@ -192,7 +193,7 @@ public class FastCompactionPerformer
// end offset of each timeseries metadata, in order to facilitate the reading of chunkMetadata
// directly by this offset later. Instead of deserializing chunk metadata later, we need to
// deserialize chunk metadata here to get the schemas of all value measurements, because we
- // should get schemas of all value measurement to startMeasruement() and compaction process is
+ // should get schemas of all value measurement to startMeasurement() and compaction process is
// to read a batch of overlapped files each time, and we cannot make sure if the first batch of
// overlapped tsfiles contain all the value measurements.
for (Map.Entry<String, Pair<MeasurementSchema, Map<TsFileResource, Pair<Long, Long>>>> entry :
@@ -210,7 +211,8 @@ public class FastCompactionPerformer
sortedSourceFiles,
measurementSchemas,
deviceId,
- taskSummary)
+ taskSummary,
+ ignoreAllNullRows)
.call();
subTaskSummary.increase(taskSummary);
}
@@ -296,6 +298,11 @@ public class FastCompactionPerformer
this.subTaskSummary = (FastCompactionTaskSummary) summary;
}
+ @Override
+ public void setIgnoreAllNullRows(boolean ignoreAllNullRows) {
+ this.ignoreAllNullRows = ignoreAllNullRows;
+ }
+
@Override
public void setSourceFiles(List<TsFileResource> seqFiles, List<TsFileResource> unseqFiles) {
this.seqFiles = seqFiles;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/ReadChunkCompactionPerformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/ReadChunkCompactionPerformer.java
index b19462c7793..d000d58b4c2 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/ReadChunkCompactionPerformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/ReadChunkCompactionPerformer.java
@@ -55,6 +55,7 @@ public class ReadChunkCompactionPerformer implements ISeqCompactionPerformer {
private CompactionTsFileWriter currentWriter;
private long endedFileSize = 0;
private int currentTargetFileIndex = 0;
+ private boolean ignoreAllNullRows = true;
// memory budget for file writer is 5% of per compaction task memory budget
private final long memoryBudgetForFileWriter =
(long)
@@ -86,7 +87,8 @@ public class ReadChunkCompactionPerformer implements ISeqCompactionPerformer {
InterruptedException,
StorageEngineException,
PageException {
- try (MultiTsFileDeviceIterator deviceIterator = new MultiTsFileDeviceIterator(seqFiles)) {
+ try (MultiTsFileDeviceIterator deviceIterator =
+ new MultiTsFileDeviceIterator(seqFiles, ignoreAllNullRows)) {
schema =
CompactionTableSchemaCollector.collectSchema(seqFiles, deviceIterator.getReaderMap());
while (deviceIterator.hasNextDevice()) {
@@ -172,6 +174,11 @@ public class ReadChunkCompactionPerformer implements ISeqCompactionPerformer {
this.summary = summary;
}
+ @Override
+ public void setIgnoreAllNullRows(boolean ignoreAllNullRows) {
+ this.ignoreAllNullRows = ignoreAllNullRows;
+ }
+
private void compactAlignedSeries(
IDeviceID device,
TsFileResource targetResource,
@@ -187,7 +194,7 @@ public class ReadChunkCompactionPerformer implements ISeqCompactionPerformer {
writer.startChunkGroup(device);
BatchedReadChunkAlignedSeriesCompactionExecutor compactionExecutor =
new BatchedReadChunkAlignedSeriesCompactionExecutor(
- device, targetResource, readerAndChunkMetadataList, writer, summary);
+ device, targetResource, readerAndChunkMetadataList, writer, summary, ignoreAllNullRows);
compactionExecutor.execute();
for (ChunkMetadata chunkMetadata : writer.getChunkMetadataListOfCurrentDeviceInMemory()) {
if (chunkMetadata.getMeasurementUid().isEmpty()) {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/ReadPointCompactionPerformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/ReadPointCompactionPerformer.java
index 28d1d0476ad..f890cb78835 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/ReadPointCompactionPerformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/ReadPointCompactionPerformer.java
@@ -79,6 +79,7 @@ public class ReadPointCompactionPerformer
private CompactionTaskSummary summary;
protected List<TsFileResource> targetFiles = Collections.emptyList();
+ protected boolean ignoreAllNullRows = true;
public ReadPointCompactionPerformer(
List<TsFileResource> seqFiles,
@@ -112,7 +113,7 @@ public class ReadPointCompactionPerformer
getCompactionWriter(seqFiles, unseqFiles, targetFiles)) {
// Do not close device iterator, because tsfile reader is managed by FileReaderManager.
MultiTsFileDeviceIterator deviceIterator =
- new MultiTsFileDeviceIterator(seqFiles, unseqFiles);
+ new MultiTsFileDeviceIterator(seqFiles, unseqFiles, ignoreAllNullRows);
List<Schema> schemas =
CompactionTableSchemaCollector.collectSchema(
seqFiles, unseqFiles, deviceIterator.getReaderMap());
@@ -152,6 +153,11 @@ public class ReadPointCompactionPerformer
this.summary = summary;
}
+ @Override
+ public void setIgnoreAllNullRows(boolean ignoreAllNullRows) {
+ this.ignoreAllNullRows = ignoreAllNullRows;
+ }
+
private void compactAlignedSeries(
IDeviceID device,
MultiTsFileDeviceIterator deviceIterator,
@@ -169,6 +175,8 @@ public class ReadPointCompactionPerformer
measurementSchemas.stream()
.map(IMeasurementSchema::getMeasurementId)
.collect(Collectors.toList());
+
+ fragmentInstanceContext.setIgnoreAllNullRows(ignoreAllNullRows);
IDataBlockReader dataBlockReader =
constructReader(
device,
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/RepairUnsortedFileCompactionPerformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/RepairUnsortedFileCompactionPerformer.java
index 4269169a3c3..a0f57c5efa4 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/RepairUnsortedFileCompactionPerformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/performer/impl/RepairUnsortedFileCompactionPerformer.java
@@ -36,9 +36,10 @@ public class RepairUnsortedFileCompactionPerformer extends ReadPointCompactionPe
private final boolean rewriteFile;
- public RepairUnsortedFileCompactionPerformer(boolean rewriteFile) {
+ public RepairUnsortedFileCompactionPerformer(boolean rewriteFile, boolean ignoreAllNullRows) {
super();
this.rewriteFile = rewriteFile;
+ this.ignoreAllNullRows = ignoreAllNullRows;
}
@Override
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/RepairUnsortedFileCompactionTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/RepairUnsortedFileCompactionTask.java
index ccc02e9f5ed..e2ac24b0dba 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/RepairUnsortedFileCompactionTask.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/RepairUnsortedFileCompactionTask.java
@@ -63,13 +63,14 @@ public class RepairUnsortedFileCompactionTask extends InnerSpaceCompactionTask {
TsFileManager tsFileManager,
TsFileResource sourceFile,
boolean sequence,
- long serialId) {
+ long serialId,
+ boolean ignoreAllNullRows) {
super(
timePartition,
tsFileManager,
Collections.singletonList(sourceFile),
sequence,
- new RepairUnsortedFileCompactionPerformer(true),
+ new RepairUnsortedFileCompactionPerformer(true, ignoreAllNullRows),
serialId);
this.sourceFile = sourceFile;
this.innerSpaceEstimator = new RepairUnsortedFileCompactionEstimator();
@@ -82,13 +83,14 @@ public class RepairUnsortedFileCompactionTask extends InnerSpaceCompactionTask {
TsFileResource sourceFile,
boolean sequence,
boolean rewriteFile,
- long serialId) {
+ long serialId,
+ boolean ignoreAllNullRows) {
super(
timePartition,
tsFileManager,
Collections.singletonList(sourceFile),
sequence,
- new RepairUnsortedFileCompactionPerformer(rewriteFile),
+ new RepairUnsortedFileCompactionPerformer(rewriteFile, ignoreAllNullRows),
serialId);
this.sourceFile = sourceFile;
if (rewriteFile) {
@@ -103,13 +105,14 @@ public class RepairUnsortedFileCompactionTask extends InnerSpaceCompactionTask {
TsFileResource sourceFile,
CountDownLatch latch,
boolean sequence,
- long serialId) {
+ long serialId,
+ boolean ignoreAllNullRows) {
super(
timePartition,
tsFileManager,
Collections.singletonList(sourceFile),
sequence,
- new RepairUnsortedFileCompactionPerformer(true),
+ new RepairUnsortedFileCompactionPerformer(true, ignoreAllNullRows),
serialId);
this.sourceFile = sourceFile;
this.innerSpaceEstimator = new RepairUnsortedFileCompactionEstimator();
@@ -124,13 +127,14 @@ public class RepairUnsortedFileCompactionTask extends InnerSpaceCompactionTask {
CountDownLatch latch,
boolean sequence,
boolean rewriteFile,
- long serialId) {
+ long serialId,
+ boolean ignoreAllNullRows) {
super(
timePartition,
tsFileManager,
Collections.singletonList(sourceFile),
sequence,
- new RepairUnsortedFileCompactionPerformer(rewriteFile),
+ new RepairUnsortedFileCompactionPerformer(rewriteFile, ignoreAllNullRows),
serialId);
this.sourceFile = sourceFile;
if (rewriteFile) {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/subtask/FastCompactionPerformerSubTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/subtask/FastCompactionPerformerSubTask.java
index a604648f609..bdda2c6a1cb 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/subtask/FastCompactionPerformerSubTask.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/subtask/FastCompactionPerformerSubTask.java
@@ -67,6 +67,8 @@ public class FastCompactionPerformerSubTask implements Callable<Void> {
private final boolean isAligned;
+ private final boolean ignoreAllNullRows;
+
private IDeviceID deviceId;
private List<String> measurements;
@@ -96,6 +98,7 @@ public class FastCompactionPerformerSubTask implements Callable<Void> {
this.sortedSourceFiles = sortedSourceFiles;
this.measurements = measurements;
this.summary = summary;
+ this.ignoreAllNullRows = true;
}
/** Used for aligned timeseries. */
@@ -108,7 +111,8 @@ public class FastCompactionPerformerSubTask implements Callable<Void> {
List<TsFileResource> sortedSourceFiles,
List<IMeasurementSchema> measurementSchemas,
IDeviceID deviceId,
- FastCompactionTaskSummary summary) {
+ FastCompactionTaskSummary summary,
+ boolean ignoreAllNullRows) {
this.compactionWriter = compactionWriter;
this.subTaskId = 0;
this.timeseriesMetadataOffsetMap = timeseriesMetadataOffsetMap;
@@ -119,6 +123,7 @@ public class FastCompactionPerformerSubTask implements Callable<Void> {
this.sortedSourceFiles = sortedSourceFiles;
this.measurementSchemas = measurementSchemas;
this.summary = summary;
+ this.ignoreAllNullRows = ignoreAllNullRows;
}
@Override
@@ -154,7 +159,8 @@ public class FastCompactionPerformerSubTask implements Callable<Void> {
deviceId,
subTaskId,
measurementSchemas,
- summary);
+ summary,
+ ignoreAllNullRows);
} else {
seriesCompactionExecutor =
new FastAlignedSeriesCompactionExecutor(
@@ -166,7 +172,8 @@ public class FastCompactionPerformerSubTask implements Callable<Void> {
deviceId,
subTaskId,
measurementSchemas,
- summary);
+ summary,
+ ignoreAllNullRows);
}
seriesCompactionExecutor.execute();
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java
index d2b2bf25b28..6b84d5ca7a1 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.exception.IllegalPathException;
+import org.apache.iotdb.commons.path.AlignedPath;
import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.utils.CommonDateTimeUtils;
@@ -71,13 +72,15 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
private final Map<TsFileResource, List<Modification>> modificationCache = new HashMap<>();
private Pair<IDeviceID, Boolean> currentDevice = null;
private long timeLowerBoundForCurrentDevice;
+ private boolean ignoreAllNullRows = true;
/**
* Used for compaction with read chunk performer.
*
* @throws IOException if io error occurred
*/
- public MultiTsFileDeviceIterator(List<TsFileResource> tsFileResources) throws IOException {
+ public MultiTsFileDeviceIterator(List<TsFileResource> tsFileResources, boolean ignoreAllNullRows)
+ throws IOException {
this.tsFileResourcesSortedByDesc = new ArrayList<>(tsFileResources);
this.tsFileResourcesSortedByAsc = new ArrayList<>(tsFileResources);
// sort the files from the oldest to the newest
@@ -101,6 +104,7 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
}
throw e;
}
+ this.ignoreAllNullRows = ignoreAllNullRows;
}
/**
@@ -109,7 +113,10 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
* @throws IOException if io errors occurred
*/
public MultiTsFileDeviceIterator(
- List<TsFileResource> seqResources, List<TsFileResource> unseqResources) throws IOException {
+ List<TsFileResource> seqResources,
+ List<TsFileResource> unseqResources,
+ boolean ignoreAllNullRows)
+ throws IOException {
this.tsFileResourcesSortedByDesc = new ArrayList<>(seqResources);
tsFileResourcesSortedByDesc.addAll(unseqResources);
// sort the files from the newest to the oldest
@@ -121,6 +128,7 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
readerMap.put(tsFileResource, reader);
deviceIteratorMap.put(tsFileResource, reader.getAllDevicesIteratorWithIsAligned());
}
+ this.ignoreAllNullRows = ignoreAllNullRows;
}
/**
@@ -131,7 +139,8 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
public MultiTsFileDeviceIterator(
List<TsFileResource> seqResources,
List<TsFileResource> unseqResources,
- Map<TsFileResource, TsFileSequenceReader> readerMap)
+ Map<TsFileResource, TsFileSequenceReader> readerMap,
+ boolean ignoreAllNullRows)
throws IOException {
this.tsFileResourcesSortedByDesc = new ArrayList<>(seqResources);
tsFileResourcesSortedByDesc.addAll(unseqResources);
@@ -139,6 +148,7 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
Collections.sort(
this.tsFileResourcesSortedByDesc, TsFileResource::compareFileCreationOrderByDesc);
this.readerMap = readerMap;
+ this.ignoreAllNullRows = ignoreAllNullRows;
CompactionType type = null;
if (!seqResources.isEmpty() && !unseqResources.isEmpty()) {
@@ -382,7 +392,7 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
TsFileSequenceReader reader = readerMap.get(tsFileResource);
List<AlignedChunkMetadata> alignedChunkMetadataList =
reader.getAlignedChunkMetadataByMetadataIndexNode(
- currentDevice.left, firstMeasurementNodeOfCurrentDevice);
+ currentDevice.left, firstMeasurementNodeOfCurrentDevice, ignoreAllNullRows);
applyModificationForAlignedChunkMetadataList(tsFileResource, alignedChunkMetadataList);
readerAndChunkMetadataList.add(new Pair<>(reader, alignedChunkMetadataList));
}
@@ -422,10 +432,23 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
// construct the input params List<List<Modification>> for QueryUtils.modifyAlignedChunkMetaData
AlignedChunkMetadata alignedChunkMetadata = alignedChunkMetadataList.get(0);
List<IChunkMetadata> valueChunkMetadataList = alignedChunkMetadata.getValueChunkMetadataList();
- List<List<Modification>> modificationForCurDevice = new ArrayList<>();
+
+ // match time column modifications
+ List<Modification> modificationForTimeColumn = new ArrayList<>();
+ for (Modification modification : modifications) {
+ if (modification.getPath().matchFullPath(device, AlignedPath.VECTOR_PLACEHOLDER)) {
+ modificationForTimeColumn.add(modification);
+ }
+ }
+ if (ttlDeletion != null) {
+ modificationForTimeColumn.add(ttlDeletion);
+ }
+
+ // match value column modifications
+ List<List<Modification>> modificationForValueColumns = new ArrayList<>();
for (IChunkMetadata valueChunkMetadata : valueChunkMetadataList) {
if (valueChunkMetadata == null) {
- modificationForCurDevice.add(Collections.emptyList());
+ modificationForValueColumns.add(Collections.emptyList());
continue;
}
List<Modification> modificationList = new ArrayList<>();
@@ -440,12 +463,15 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
if (ttlDeletion != null) {
modificationList.add(ttlDeletion);
}
- modificationForCurDevice.add(
+ modificationForValueColumns.add(
modificationList.isEmpty() ? Collections.emptyList() : modificationList);
}
ModificationUtils.modifyAlignedChunkMetaData(
- alignedChunkMetadataList, modificationForCurDevice);
+ alignedChunkMetadataList,
+ modificationForTimeColumn,
+ modificationForValueColumns,
+ ignoreAllNullRows);
}
public Map<TsFileResource, TsFileSequenceReader> getReaderMap() {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/BatchedFastAlignedSeriesCompactionExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/BatchedFastAlignedSeriesCompactionExecutor.java
index 9a31990b11a..b22ed5df6f5 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/BatchedFastAlignedSeriesCompactionExecutor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/BatchedFastAlignedSeriesCompactionExecutor.java
@@ -55,6 +55,7 @@ import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -84,7 +85,8 @@ public class BatchedFastAlignedSeriesCompactionExecutor
IDeviceID deviceId,
int subTaskId,
List<IMeasurementSchema> measurementSchemas,
- FastCompactionTaskSummary summary) {
+ FastCompactionTaskSummary summary,
+ boolean ignoreAllNullRows) {
super(
compactionWriter,
timeseriesMetadataOffsetMap,
@@ -94,7 +96,8 @@ public class BatchedFastAlignedSeriesCompactionExecutor
deviceId,
subTaskId,
measurementSchemas,
- summary);
+ summary,
+ ignoreAllNullRows);
timeSchema = measurementSchemas.remove(0);
valueMeasurementSchemas = measurementSchemas;
this.batchColumnSelection =
@@ -107,7 +110,7 @@ public class BatchedFastAlignedSeriesCompactionExecutor
private List<AlignedChunkMetadata> getAlignedChunkMetadataListBySelectedValueColumn(
TsFileResource tsFileResource, List<IMeasurementSchema> selectedValueMeasurementSchemas)
- throws IOException {
+ throws IOException, IllegalPathException {
// 1. get Full AlignedChunkMetadata from cache
List<AlignedChunkMetadata> alignedChunkMetadataList = null;
if (alignedChunkMetadataCache.containsKey(tsFileResource)) {
@@ -140,28 +143,32 @@ public class BatchedFastAlignedSeriesCompactionExecutor
private void compactFirstBatch()
throws PageException, IllegalPathException, IOException, WriteProcessException {
+ List<IMeasurementSchema> selectedMeasurementSchemas;
if (!batchColumnSelection.hasNext()) {
- return;
+ if (ignoreAllNullRows) {
+ return;
+ }
+ selectedMeasurementSchemas = Collections.singletonList(timeSchema);
+ } else {
+ batchColumnSelection.next();
+ selectedMeasurementSchemas =
+ new ArrayList<>(batchColumnSelection.getCurrentSelectedColumnSchemaList().size() + 1);
+ selectedMeasurementSchemas.add(timeSchema);
+ selectedMeasurementSchemas.addAll(batchColumnSelection.getCurrentSelectedColumnSchemaList());
}
- batchColumnSelection.next();
-
- List<IMeasurementSchema> currentBatchMeasurementSchemas =
- new ArrayList<>(batchColumnSelection.getCurrentSelectedColumnSchemaList().size() + 1);
- currentBatchMeasurementSchemas.add(timeSchema);
- currentBatchMeasurementSchemas.addAll(
- batchColumnSelection.getCurrentSelectedColumnSchemaList());
FirstBatchFastAlignedSeriesCompactionExecutor executor =
new FirstBatchFastAlignedSeriesCompactionExecutor(
compactionWriter,
- filterTimeseriesMetadataOffsetMap(currentBatchMeasurementSchemas),
+ filterTimeseriesMetadataOffsetMap(selectedMeasurementSchemas),
readerCacheMap,
modificationCacheMap,
sortedSourceFiles,
deviceId,
subTaskId,
- currentBatchMeasurementSchemas,
- summary);
+ selectedMeasurementSchemas,
+ summary,
+ ignoreAllNullRows);
executor.execute();
LOGGER.debug(
"[Batch Compaction] current device is {}, first batch compacted time chunk is {}",
@@ -188,7 +195,8 @@ public class BatchedFastAlignedSeriesCompactionExecutor
deviceId,
subTaskId,
currentBatchMeasurementSchemas,
- summary);
+ summary,
+ ignoreAllNullRows);
executor.execute();
}
}
@@ -218,7 +226,8 @@ public class BatchedFastAlignedSeriesCompactionExecutor
IDeviceID deviceId,
int subTaskId,
List<IMeasurementSchema> measurementSchemas,
- FastCompactionTaskSummary summary) {
+ FastCompactionTaskSummary summary,
+ boolean ignoreAllNullRows) {
super(
compactionWriter,
timeseriesMetadataOffsetMap,
@@ -228,7 +237,8 @@ public class BatchedFastAlignedSeriesCompactionExecutor
deviceId,
subTaskId,
measurementSchemas,
- summary);
+ summary,
+ ignoreAllNullRows);
isBatchedCompaction = true;
}
@@ -253,7 +263,7 @@ public class BatchedFastAlignedSeriesCompactionExecutor
@Override
protected List<AlignedChunkMetadata> getAlignedChunkMetadataList(TsFileResource resource)
- throws IOException {
+ throws IOException, IllegalPathException {
return getAlignedChunkMetadataListBySelectedValueColumn(resource, measurementSchemas);
}
@@ -291,7 +301,7 @@ public class BatchedFastAlignedSeriesCompactionExecutor
ModifiedStatus modifiedStatus =
AlignedSeriesBatchCompactionUtils.calculateAlignedPageModifiedStatus(
- startTime, endTime, originAlignedChunkMetadata);
+ startTime, endTime, originAlignedChunkMetadata, ignoreAllNullRows);
batchCompactionPlan.recordPageModifiedStatus(
resource.getTsFile().getName(), new TimeRange(startTime, endTime), modifiedStatus);
return modifiedStatus;
@@ -313,7 +323,8 @@ public class BatchedFastAlignedSeriesCompactionExecutor
IDeviceID deviceId,
int subTaskId,
List<IMeasurementSchema> measurementSchemas,
- FastCompactionTaskSummary summary) {
+ FastCompactionTaskSummary summary,
+ boolean ignoreAllNullRows) {
super(
compactionWriter,
timeseriesMetadataOffsetMap,
@@ -323,7 +334,8 @@ public class BatchedFastAlignedSeriesCompactionExecutor
deviceId,
subTaskId,
measurementSchemas,
- summary);
+ summary,
+ ignoreAllNullRows);
isBatchedCompaction = true;
}
@@ -359,7 +371,7 @@ public class BatchedFastAlignedSeriesCompactionExecutor
@Override
protected List<AlignedChunkMetadata> getAlignedChunkMetadataList(TsFileResource resource)
- throws IOException {
+ throws IOException, IllegalPathException {
return getAlignedChunkMetadataListBySelectedValueColumn(resource, measurementSchemas);
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/BatchedReadChunkAlignedSeriesCompactionExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/BatchedReadChunkAlignedSeriesCompactionExecutor.java
index a8245d62632..60ba6635fe2 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/BatchedReadChunkAlignedSeriesCompactionExecutor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/BatchedReadChunkAlignedSeriesCompactionExecutor.java
@@ -26,8 +26,8 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.Comp
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.ModifiedStatus;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.AlignedSeriesBatchCompactionUtils;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.BatchCompactionPlan;
-import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.BatchedCompactionAlignedPagePointReader;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.CompactChunkPlan;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.CompactionAlignedPageLazyLoadPointReader;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.FirstBatchCompactionAlignedChunkWriter;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.FollowingBatchCompactionAlignedChunkWriter;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.readchunk.ReadChunkAlignedSeriesCompactionExecutor;
@@ -44,7 +44,8 @@ import org.apache.tsfile.file.metadata.statistics.Statistics;
import org.apache.tsfile.read.TsFileSequenceReader;
import org.apache.tsfile.read.common.TimeRange;
import org.apache.tsfile.read.reader.IPointReader;
-import org.apache.tsfile.read.reader.page.AlignedPageReader;
+import org.apache.tsfile.read.reader.page.TimePageReader;
+import org.apache.tsfile.read.reader.page.ValuePageReader;
import org.apache.tsfile.utils.Pair;
import org.apache.tsfile.write.chunk.AlignedChunkWriterImpl;
import org.apache.tsfile.write.schema.IMeasurementSchema;
@@ -72,9 +73,10 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
TsFileResource targetResource,
LinkedList<Pair<TsFileSequenceReader, List<AlignedChunkMetadata>>> readerAndChunkMetadataList,
CompactionTsFileWriter writer,
- CompactionTaskSummary summary)
+ CompactionTaskSummary summary,
+ boolean ignoreAllNullRows)
throws IOException {
- super(device, targetResource, readerAndChunkMetadataList, writer, summary);
+ super(device, targetResource, readerAndChunkMetadataList, writer, summary, ignoreAllNullRows);
this.originReaderAndChunkMetadataList = readerAndChunkMetadataList;
this.batchColumnSelection =
new AlignedSeriesBatchCompactionUtils.BatchColumnSelection(schemaList, batchSize);
@@ -95,15 +97,23 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
}
private void compactFirstBatch() throws IOException, PageException {
+ List<Integer> selectedColumnIndexList;
+ List<IMeasurementSchema> selectedColumnSchemaList;
if (!batchColumnSelection.hasNext()) {
- return;
+ if (ignoreAllNullRows) {
+ return;
+ }
+ selectedColumnIndexList = Collections.emptyList();
+ selectedColumnSchemaList = Collections.emptyList();
+ } else {
+ batchColumnSelection.next();
+ selectedColumnIndexList = batchColumnSelection.getSelectedColumnIndexList();
+ selectedColumnSchemaList = batchColumnSelection.getCurrentSelectedColumnSchemaList();
}
- batchColumnSelection.next();
LinkedList<Pair<TsFileSequenceReader, List<AlignedChunkMetadata>>>
batchedReaderAndChunkMetadataList =
- filterAlignedChunkMetadataList(
- readerAndChunkMetadataList, batchColumnSelection.getSelectedColumnIndexList());
+ filterAlignedChunkMetadataList(readerAndChunkMetadataList, selectedColumnIndexList);
FirstBatchedReadChunkAlignedSeriesCompactionExecutor executor =
new FirstBatchedReadChunkAlignedSeriesCompactionExecutor(
@@ -113,7 +123,8 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
writer,
summary,
timeSchema,
- batchColumnSelection.getCurrentSelectedColumnSchemaList());
+ selectedColumnSchemaList,
+ ignoreAllNullRows);
executor.execute();
LOGGER.debug(
"[Batch Compaction] current device is {}, first batch compacted time chunk is {}",
@@ -136,7 +147,8 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
writer,
summary,
timeSchema,
- batchColumnSelection.getCurrentSelectedColumnSchemaList());
+ batchColumnSelection.getCurrentSelectedColumnSchemaList(),
+ ignoreAllNullRows);
executor.execute();
}
}
@@ -172,7 +184,8 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
CompactionTsFileWriter writer,
CompactionTaskSummary summary,
IMeasurementSchema timeSchema,
- List<IMeasurementSchema> valueSchemaList) {
+ List<IMeasurementSchema> valueSchemaList,
+ boolean ignoreAllNullRows) {
super(
device,
targetResource,
@@ -180,7 +193,8 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
writer,
summary,
timeSchema,
- valueSchemaList);
+ valueSchemaList,
+ ignoreAllNullRows);
int compactionFileLevel =
Integer.parseInt(this.targetResource.getTsFile().getName().split("-")[2]);
this.flushController =
@@ -229,7 +243,7 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
ModifiedStatus modifiedStatus =
AlignedSeriesBatchCompactionUtils.calculateAlignedPageModifiedStatus(
- startTime, endTime, originAlignedChunkMetadata);
+ startTime, endTime, originAlignedChunkMetadata, ignoreAllNullRows);
batchCompactionPlan.recordPageModifiedStatus(
file, new TimeRange(startTime, endTime), modifiedStatus);
return modifiedStatus == ModifiedStatus.ALL_DELETED;
@@ -247,9 +261,10 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
}
@Override
- protected IPointReader getPointReader(AlignedPageReader alignedPageReader) throws IOException {
- return new BatchedCompactionAlignedPagePointReader(
- alignedPageReader.getTimePageReader(), alignedPageReader.getValuePageReaderList());
+ protected IPointReader getPointReader(
+ TimePageReader timePageReader, List<ValuePageReader> valuePageReaders) throws IOException {
+ // we have to set ignoreAllNullRows=false because we can not get the entire row here
+ return new CompactionAlignedPageLazyLoadPointReader(timePageReader, valuePageReaders, false);
}
private class FirstBatchReadChunkAlignedSeriesCompactionFlushController
@@ -280,7 +295,8 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
CompactionTsFileWriter writer,
CompactionTaskSummary summary,
IMeasurementSchema timeSchema,
- List<IMeasurementSchema> valueSchemaList) {
+ List<IMeasurementSchema> valueSchemaList,
+ boolean ignoreAllNullRows) {
super(
device,
targetResource,
@@ -288,7 +304,8 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
writer,
summary,
timeSchema,
- valueSchemaList);
+ valueSchemaList,
+ ignoreAllNullRows);
this.flushController = new FollowingBatchReadChunkAlignedSeriesCompactionFlushController();
this.chunkWriter =
new FollowingBatchCompactionAlignedChunkWriter(
@@ -355,9 +372,10 @@ public class BatchedReadChunkAlignedSeriesCompactionExecutor
}
@Override
- protected IPointReader getPointReader(AlignedPageReader alignedPageReader) throws IOException {
- return new BatchedCompactionAlignedPagePointReader(
- alignedPageReader.getTimePageReader(), alignedPageReader.getValuePageReaderList());
+ protected IPointReader getPointReader(
+ TimePageReader timePageReader, List<ValuePageReader> valuePageReaders) throws IOException {
+ // we have to set ignoreAllNullRows=false because we can not get the entire row here
+ return new CompactionAlignedPageLazyLoadPointReader(timePageReader, valuePageReaders, false);
}
private class FollowingBatchReadChunkAlignedSeriesCompactionFlushController
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/AlignedSeriesBatchCompactionUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/AlignedSeriesBatchCompactionUtils.java
index 79e7b72a8ac..3e5f69b88e5 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/AlignedSeriesBatchCompactionUtils.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/AlignedSeriesBatchCompactionUtils.java
@@ -105,7 +105,19 @@ public class AlignedSeriesBatchCompactionUtils {
}
public static ModifiedStatus calculateAlignedPageModifiedStatus(
- long startTime, long endTime, AlignedChunkMetadata originAlignedChunkMetadata) {
+ long startTime,
+ long endTime,
+ AlignedChunkMetadata originAlignedChunkMetadata,
+ boolean ignoreAllNullRows) {
+ ModifiedStatus timePageModifiedStatus =
+ checkIsModified(
+ startTime,
+ endTime,
+ originAlignedChunkMetadata.getTimeChunkMetadata().getDeleteIntervalList());
+ if (timePageModifiedStatus != ModifiedStatus.NONE_DELETED) {
+ return timePageModifiedStatus;
+ }
+
ModifiedStatus lastPageStatus = null;
for (IChunkMetadata valueChunkMetadata :
originAlignedChunkMetadata.getValueChunkMetadataList()) {
@@ -128,7 +140,11 @@ public class AlignedSeriesBatchCompactionUtils {
lastPageStatus = ModifiedStatus.NONE_DELETED;
}
}
- return lastPageStatus;
+
+ // keep the aligned table page with deletion only in value page
+ return (!ignoreAllNullRows && lastPageStatus == ModifiedStatus.ALL_DELETED)
+ ? ModifiedStatus.PARTIAL_DELETED
+ : lastPageStatus;
}
public static ModifiedStatus checkIsModified(
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/BatchedCompactionAlignedPagePointReader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/CompactionAlignedPageLazyLoadPointReader.java
similarity index 67%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/BatchedCompactionAlignedPagePointReader.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/CompactionAlignedPageLazyLoadPointReader.java
index 0a90fe49a15..900e887b7da 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/BatchedCompactionAlignedPagePointReader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/batch/utils/CompactionAlignedPageLazyLoadPointReader.java
@@ -28,9 +28,10 @@ import org.apache.tsfile.utils.TsPrimitiveType;
import java.io.IOException;
import java.util.List;
-public class BatchedCompactionAlignedPagePointReader implements IPointReader {
+public class CompactionAlignedPageLazyLoadPointReader implements IPointReader {
private final TimePageReader timeReader;
private final List<ValuePageReader> valueReaders;
+ private final boolean ignoreAllNullRows;
private boolean hasNextRow = false;
@@ -38,31 +39,43 @@ public class BatchedCompactionAlignedPagePointReader implements IPointReader {
private long currentTime;
private TsPrimitiveType currentRow;
- public BatchedCompactionAlignedPagePointReader(
- TimePageReader timeReader, List<ValuePageReader> valueReaders) throws IOException {
+ public CompactionAlignedPageLazyLoadPointReader(
+ TimePageReader timeReader, List<ValuePageReader> valueReaders, boolean ignoreAllNullRows)
+ throws IOException {
this.timeIndex = -1;
this.timeReader = timeReader;
this.valueReaders = valueReaders;
+ this.ignoreAllNullRows = ignoreAllNullRows;
prepareNextRow();
}
private void prepareNextRow() throws IOException {
- if (!timeReader.hasNextTime()) {
- hasNextRow = false;
- return;
- }
- currentTime = timeReader.nextTime();
- timeIndex++;
- TsPrimitiveType[] valuesInThisRow = new TsPrimitiveType[valueReaders.size()];
- for (int i = 0; i < valueReaders.size(); i++) {
- TsPrimitiveType value =
- valueReaders.get(i) == null
- ? null
- : valueReaders.get(i).nextValue(currentTime, timeIndex);
- valuesInThisRow[i] = value;
+ while (timeReader.hasNextTime()) {
+ currentTime = timeReader.nextTime();
+ ++this.timeIndex;
+ boolean someValueNotNull = false;
+ TsPrimitiveType[] valuesInThisRow = new TsPrimitiveType[this.valueReaders.size()];
+
+ for (int i = 0; i < valueReaders.size(); ++i) {
+ TsPrimitiveType value =
+ valueReaders.get(i) == null
+ ? null
+ : this.valueReaders.get(i).nextValue(currentTime, timeIndex);
+ someValueNotNull = someValueNotNull || value != null;
+ valuesInThisRow[i] = value;
+ }
+ if (timeReader.isDeleted(currentTime)) {
+ continue;
+ }
+
+ if (!ignoreAllNullRows || someValueNotNull) {
+ currentRow = new TsPrimitiveType.TsVector(valuesInThisRow);
+ hasNextRow = true;
+ return;
+ }
}
- currentRow = new TsPrimitiveType.TsVector(valuesInThisRow);
- hasNextRow = true;
+
+ hasNextRow = false;
}
@Override
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/FastAlignedSeriesCompactionExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/FastAlignedSeriesCompactionExecutor.java
index 3c9c195f686..e997031f0a9 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/FastAlignedSeriesCompactionExecutor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/FastAlignedSeriesCompactionExecutor.java
@@ -20,6 +20,7 @@
package org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.fast;
import org.apache.iotdb.commons.exception.IllegalPathException;
+import org.apache.iotdb.commons.path.AlignedPath;
import org.apache.iotdb.commons.path.PatternTreeMap;
import org.apache.iotdb.db.exception.WriteProcessException;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.subtask.FastCompactionTaskSummary;
@@ -70,6 +71,7 @@ public class FastAlignedSeriesCompactionExecutor extends SeriesCompactionExecuto
protected final List<IMeasurementSchema> measurementSchemas;
protected final IMeasurementSchema timeColumnMeasurementSchema;
protected final Map<String, IMeasurementSchema> measurementSchemaMap;
+ protected final boolean ignoreAllNullRows;
@SuppressWarnings("squid:S107")
public FastAlignedSeriesCompactionExecutor(
@@ -82,7 +84,8 @@ public class FastAlignedSeriesCompactionExecutor extends SeriesCompactionExecuto
IDeviceID deviceId,
int subTaskId,
List<IMeasurementSchema> measurementSchemas,
- FastCompactionTaskSummary summary) {
+ FastCompactionTaskSummary summary,
+ boolean ignoreAllNullRows) {
super(
compactionWriter, readerCacheMap, modificationCacheMap, deviceId, true, subTaskId, summary);
this.timeseriesMetadataOffsetMap = timeseriesMetadataOffsetMap;
@@ -91,6 +94,7 @@ public class FastAlignedSeriesCompactionExecutor extends SeriesCompactionExecuto
this.measurementSchemaMap = new HashMap<>();
this.measurementSchemas.forEach(
schema -> measurementSchemaMap.put(schema.getMeasurementId(), schema));
+ this.ignoreAllNullRows = ignoreAllNullRows;
// get source files which are sorted by the startTime of current device from old to new,
// files that do not contain the current device have been filtered out as well.
sortedSourceFiles.forEach(x -> fileList.add(new FileElement(x)));
@@ -171,7 +175,7 @@ public class FastAlignedSeriesCompactionExecutor extends SeriesCompactionExecuto
}
protected List<AlignedChunkMetadata> getAlignedChunkMetadataList(TsFileResource resource)
- throws IOException {
+ throws IOException, IllegalPathException {
// read time chunk metadatas and value chunk metadatas in the current file
List<IChunkMetadata> timeChunkMetadatas = null;
List<List<IChunkMetadata>> valueChunkMetadatas = new ArrayList<>();
@@ -230,6 +234,10 @@ public class FastAlignedSeriesCompactionExecutor extends SeriesCompactionExecuto
alignedChunkMetadataList.add(alignedChunkMetadata);
}
+ // get time modifications of this file
+ List<Modification> timeModifications =
+ getModificationsFromCache(
+ resource, CompactionPathUtils.getPath(deviceId, AlignedPath.VECTOR_PLACEHOLDER));
// get value modifications of this file
List<List<Modification>> valueModifications = new ArrayList<>();
alignedChunkMetadataList
@@ -252,7 +260,8 @@ public class FastAlignedSeriesCompactionExecutor extends SeriesCompactionExecuto
});
// modify aligned chunk metadatas
- ModificationUtils.modifyAlignedChunkMetaData(alignedChunkMetadataList, valueModifications);
+ ModificationUtils.modifyAlignedChunkMetaData(
+ alignedChunkMetadataList, timeModifications, valueModifications, ignoreAllNullRows);
}
return alignedChunkMetadataList;
}
@@ -324,7 +333,7 @@ public class FastAlignedSeriesCompactionExecutor extends SeriesCompactionExecuto
alignedPageHeaders,
timePages.get(i).right,
alignedPageDatas,
- new CompactionAlignedChunkReader(timeChunk, valueChunks),
+ new CompactionAlignedChunkReader(timeChunk, valueChunks, ignoreAllNullRows),
chunkMetadataElement,
i == timePages.size() - 1,
isBatchedCompaction);
@@ -411,6 +420,6 @@ public class FastAlignedSeriesCompactionExecutor extends SeriesCompactionExecuto
AlignedChunkMetadata alignedChunkMetadata =
(AlignedChunkMetadata) pageElement.getChunkMetadataElement().chunkMetadata;
return AlignedSeriesBatchCompactionUtils.calculateAlignedPageModifiedStatus(
- startTime, endTime, alignedChunkMetadata);
+ startTime, endTime, alignedChunkMetadata, ignoreAllNullRows);
}
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/reader/CompactionAlignedChunkReader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/reader/CompactionAlignedChunkReader.java
index 282035ee661..ff41e5e840e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/reader/CompactionAlignedChunkReader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/reader/CompactionAlignedChunkReader.java
@@ -19,7 +19,7 @@
package org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.fast.reader;
-import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.BatchedCompactionAlignedPagePointReader;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.CompactionAlignedPageLazyLoadPointReader;
import org.apache.tsfile.common.conf.TSFileDescriptor;
import org.apache.tsfile.compress.IUnCompressor;
@@ -31,7 +31,8 @@ import org.apache.tsfile.file.metadata.enums.TSEncoding;
import org.apache.tsfile.read.common.Chunk;
import org.apache.tsfile.read.common.TimeRange;
import org.apache.tsfile.read.reader.IPointReader;
-import org.apache.tsfile.read.reader.page.AlignedPageReader;
+import org.apache.tsfile.read.reader.page.TimePageReader;
+import org.apache.tsfile.read.reader.page.ValuePageReader;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -46,27 +47,33 @@ public class CompactionAlignedChunkReader {
private final List<ChunkHeader> valueChunkHeaderList = new ArrayList<>();
private final IUnCompressor timeUnCompressor;
+ private final boolean ignoreAllNullRows;
private final Decoder timeDecoder =
Decoder.getDecoderByType(
TSEncoding.valueOf(TSFileDescriptor.getInstance().getConfig().getTimeEncoder()),
TSDataType.INT64);
+ private final List<TimeRange> timeDeleteIntervalList;
// A list of deleted intervals
- private final List<List<TimeRange>> valueDeleteIntervalList = new ArrayList<>();
+ private final List<List<TimeRange>> valueDeleteIntervalList;
/**
* Constructor of ChunkReader without deserializing chunk into page. This is used for fast
* compaction.
*/
- public CompactionAlignedChunkReader(Chunk timeChunk, List<Chunk> valueChunkList) {
+ public CompactionAlignedChunkReader(
+ Chunk timeChunk, List<Chunk> valueChunkList, boolean ignoreAllNullRows) {
ChunkHeader timeChunkHeader = timeChunk.getHeader();
this.timeUnCompressor = IUnCompressor.getUnCompressor(timeChunkHeader.getCompressionType());
+ this.timeDeleteIntervalList = timeChunk.getDeleteIntervalList();
+ this.valueDeleteIntervalList = new ArrayList<>(valueChunkList.size());
valueChunkList.forEach(
chunk -> {
this.valueChunkHeaderList.add(chunk == null ? null : chunk.getHeader());
this.valueDeleteIntervalList.add(chunk == null ? null : chunk.getDeleteIntervalList());
});
+ this.ignoreAllNullRows = ignoreAllNullRows;
}
/**
@@ -80,10 +87,12 @@ public class CompactionAlignedChunkReader {
ByteBuffer compressedTimePageData,
List<ByteBuffer> compressedValuePageDatas)
throws IOException {
- AlignedPageReader alignedPageReader =
- getAlignedPageReader(
- timePageHeader, valuePageHeaders, compressedTimePageData, compressedValuePageDatas);
- return alignedPageReader.getLazyPointReader();
+ return getPontReader(
+ timePageHeader,
+ valuePageHeaders,
+ compressedTimePageData,
+ compressedValuePageDatas,
+ ignoreAllNullRows);
}
public IPointReader getBatchedPagePointReader(
@@ -92,58 +101,50 @@ public class CompactionAlignedChunkReader {
ByteBuffer compressedTimePageData,
List<ByteBuffer> compressedValuePageDatas)
throws IOException {
- AlignedPageReader alignedPageReader =
- getAlignedPageReader(
- timePageHeader, valuePageHeaders, compressedTimePageData, compressedValuePageDatas);
- return new BatchedCompactionAlignedPagePointReader(
- alignedPageReader.getTimePageReader(), alignedPageReader.getValuePageReaderList());
+ return getPontReader(
+ timePageHeader, valuePageHeaders, compressedTimePageData, compressedValuePageDatas, false);
}
- public AlignedPageReader getAlignedPageReader(
+ private IPointReader getPontReader(
PageHeader timePageHeader,
List<PageHeader> valuePageHeaders,
ByteBuffer compressedTimePageData,
- List<ByteBuffer> compressedValuePageDatas)
+ List<ByteBuffer> compressedValuePageDatas,
+ boolean ignoreAllNullRows)
throws IOException {
// uncompress time page data
ByteBuffer uncompressedTimePageData =
uncompressPageData(timePageHeader, timeUnCompressor, compressedTimePageData);
+ TimePageReader timePageReader =
+ new TimePageReader(timePageHeader, uncompressedTimePageData, timeDecoder);
+ timePageReader.setDeleteIntervalList(timeDeleteIntervalList);
+
// uncompress value page datas
- List<ByteBuffer> uncompressedValuePageDatas = new ArrayList<>();
- List<TSDataType> valueTypes = new ArrayList<>();
- List<Decoder> valueDecoders = new ArrayList<>();
+ List<ValuePageReader> valuePageReaders = new ArrayList<>(valuePageHeaders.size());
for (int i = 0; i < valuePageHeaders.size(); i++) {
if (valuePageHeaders.get(i) == null) {
- uncompressedValuePageDatas.add(null);
- valueTypes.add(TSDataType.BOOLEAN);
- valueDecoders.add(null);
+ valuePageReaders.add(null);
} else {
ChunkHeader valueChunkHeader = valueChunkHeaderList.get(i);
- uncompressedValuePageDatas.add(
+ ByteBuffer uncompressedPageData =
uncompressPageData(
valuePageHeaders.get(i),
IUnCompressor.getUnCompressor(valueChunkHeader.getCompressionType()),
- compressedValuePageDatas.get(i)));
+ compressedValuePageDatas.get(i));
TSDataType valueType = valueChunkHeader.getDataType();
- valueDecoders.add(Decoder.getDecoderByType(valueChunkHeader.getEncodingType(), valueType));
- valueTypes.add(valueType);
+ ValuePageReader valuePageReader =
+ new ValuePageReader(
+ valuePageHeaders.get(i),
+ uncompressedPageData,
+ valueType,
+ Decoder.getDecoderByType(valueChunkHeader.getEncodingType(), valueType));
+ valuePageReader.setDeleteIntervalList(valueDeleteIntervalList.get(i));
+ valuePageReaders.add(valuePageReader);
}
}
- // decode page data
- AlignedPageReader alignedPageReader =
- new AlignedPageReader(
- timePageHeader,
- uncompressedTimePageData,
- timeDecoder,
- valuePageHeaders,
- uncompressedValuePageDatas,
- valueTypes,
- valueDecoders,
- null);
- alignedPageReader.initTsBlockBuilder(valueTypes);
- alignedPageReader.setDeleteIntervalList(valueDeleteIntervalList);
- return alignedPageReader;
+ return new CompactionAlignedPageLazyLoadPointReader(
+ timePageReader, valuePageReaders, ignoreAllNullRows);
}
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/readchunk/ReadChunkAlignedSeriesCompactionExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/readchunk/ReadChunkAlignedSeriesCompactionExecutor.java
index 65fc6c5c217..373dbe53619 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/readchunk/ReadChunkAlignedSeriesCompactionExecutor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/readchunk/ReadChunkAlignedSeriesCompactionExecutor.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.exception
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.CompactionTaskSummary;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.ModifiedStatus;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.AlignedSeriesBatchCompactionUtils;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.CompactionAlignedPageLazyLoadPointReader;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.readchunk.loader.ChunkLoader;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.readchunk.loader.InstantChunkLoader;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.readchunk.loader.InstantPageLoader;
@@ -46,9 +47,9 @@ import org.apache.tsfile.file.metadata.statistics.Statistics;
import org.apache.tsfile.read.TimeValuePair;
import org.apache.tsfile.read.TsFileSequenceReader;
import org.apache.tsfile.read.common.Chunk;
-import org.apache.tsfile.read.common.TimeRange;
import org.apache.tsfile.read.reader.IPointReader;
-import org.apache.tsfile.read.reader.page.AlignedPageReader;
+import org.apache.tsfile.read.reader.page.TimePageReader;
+import org.apache.tsfile.read.reader.page.ValuePageReader;
import org.apache.tsfile.utils.Pair;
import org.apache.tsfile.write.chunk.AlignedChunkWriterImpl;
import org.apache.tsfile.write.schema.IMeasurementSchema;
@@ -75,9 +76,9 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
protected AlignedChunkWriterImpl chunkWriter;
protected IMeasurementSchema timeSchema;
protected List<IMeasurementSchema> schemaList;
- protected Map<String, Integer> measurementSchemaListIndexMap;
protected ReadChunkAlignedSeriesCompactionFlushController flushController;
protected final CompactionTaskSummary summary;
+ protected final boolean ignoreAllNullRows;
private long lastWriteTimestamp = Long.MIN_VALUE;
@@ -86,7 +87,8 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
TsFileResource targetResource,
LinkedList<Pair<TsFileSequenceReader, List<AlignedChunkMetadata>>> readerAndChunkMetadataList,
CompactionTsFileWriter writer,
- CompactionTaskSummary summary)
+ CompactionTaskSummary summary,
+ boolean ignoreAllNullRows)
throws IOException {
this.device = device;
this.readerAndChunkMetadataList = readerAndChunkMetadataList;
@@ -99,8 +101,10 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
Integer.parseInt(this.targetResource.getTsFile().getName().split("-")[2]);
flushController = new ReadChunkAlignedSeriesCompactionFlushController(compactionFileLevel);
this.chunkWriter = constructAlignedChunkWriter();
+ this.ignoreAllNullRows = ignoreAllNullRows;
}
+ // used for batched column compaction
public ReadChunkAlignedSeriesCompactionExecutor(
IDeviceID device,
TsFileResource targetResource,
@@ -108,7 +112,8 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
CompactionTsFileWriter writer,
CompactionTaskSummary summary,
IMeasurementSchema timeSchema,
- List<IMeasurementSchema> valueSchemaList) {
+ List<IMeasurementSchema> valueSchemaList,
+ boolean ignoreAllNullRows) {
this.device = device;
this.readerAndChunkMetadataList = readerAndChunkMetadataList;
this.writer = writer;
@@ -120,6 +125,7 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
this.timeSchema = timeSchema;
this.schemaList = valueSchemaList;
this.chunkWriter = constructAlignedChunkWriter();
+ this.ignoreAllNullRows = ignoreAllNullRows;
}
private void collectValueColumnSchemaList() throws IOException {
@@ -303,7 +309,12 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
pageListOfValueColumn.isEmpty() ? getEmptyPage() : pageListOfValueColumn.get(i));
}
- if (isAllValuePageEmpty(timePage, valuePages)) {
+ // used for tree model
+ if (ignoreAllNullRows && isAllValuePageEmpty(timePage, valuePages)) {
+ continue;
+ }
+ // used for table model deletion
+ if (!ignoreAllNullRows && timePage.isEmpty()) {
continue;
}
@@ -356,49 +367,33 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
ByteBuffer uncompressedTimePageData = timePage.getUnCompressedData();
Decoder timeDecoder = Decoder.getDecoderByType(timePage.getEncoding(), TSDataType.INT64);
timePage.clear();
+ TimePageReader timePageReader =
+ new TimePageReader(timePageHeader, uncompressedTimePageData, timeDecoder);
+ timePageReader.setDeleteIntervalList(timePage.getDeleteIntervalList());
- List<PageHeader> valuePageHeaders = new ArrayList<>(valuePages.size());
- List<ByteBuffer> uncompressedValuePageDatas = new ArrayList<>(valuePages.size());
- List<TSDataType> valueDataTypes = new ArrayList<>(valuePages.size());
- List<Decoder> valueDecoders = new ArrayList<>(valuePages.size());
- List<List<TimeRange>> deleteIntervalLists = new ArrayList<>(valuePages.size());
+ List<ValuePageReader> valuePageReaders = new ArrayList<>(valuePages.size());
int nonEmptyPageNum = 1;
for (int i = 0; i < valuePages.size(); i++) {
PageLoader valuePage = valuePages.get(i);
- if (valuePage.isEmpty()) {
- valuePageHeaders.add(null);
- uncompressedValuePageDatas.add(null);
- valueDataTypes.add(schemaList.get(i).getType());
- valueDecoders.add(
- Decoder.getDecoderByType(
- schemaList.get(i).getEncodingType(), schemaList.get(i).getType()));
- deleteIntervalLists.add(null);
- } else {
- valuePageHeaders.add(valuePage.getHeader());
- uncompressedValuePageDatas.add(valuePage.getUnCompressedData());
- valueDataTypes.add(valuePage.getDataType());
- valueDecoders.add(
- Decoder.getDecoderByType(valuePage.getEncoding(), valuePage.getDataType()));
- deleteIntervalLists.add(valuePage.getDeleteIntervalList());
- valuePage.clear();
+ ValuePageReader valuePageReader = null;
+ if (!valuePage.isEmpty()) {
+ valuePageReader =
+ new ValuePageReader(
+ valuePage.getHeader(),
+ valuePage.getUnCompressedData(),
+ schemaList.get(i).getType(),
+ Decoder.getDecoderByType(
+ schemaList.get(i).getEncodingType(), schemaList.get(i).getType()));
+ valuePageReader.setDeleteIntervalList(valuePage.getDeleteIntervalList());
nonEmptyPageNum++;
}
+ valuePage.clear();
+ valuePageReaders.add(valuePageReader);
}
summary.increaseDeserializedPageNum(nonEmptyPageNum);
- AlignedPageReader alignedPageReader =
- new AlignedPageReader(
- timePageHeader,
- uncompressedTimePageData,
- timeDecoder,
- valuePageHeaders,
- uncompressedValuePageDatas,
- valueDataTypes,
- valueDecoders,
- null);
- alignedPageReader.setDeleteIntervalList(deleteIntervalLists);
long processedPointNum = 0;
- IPointReader lazyPointReader = getPointReader(alignedPageReader);
+ IPointReader lazyPointReader = getPointReader(timePageReader, valuePageReaders);
while (lazyPointReader.hasNextTimeValuePair()) {
TimeValuePair timeValuePair = lazyPointReader.nextTimeValuePair();
long currentTime = timeValuePair.getTimestamp();
@@ -414,8 +409,10 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
}
}
- protected IPointReader getPointReader(AlignedPageReader alignedPageReader) throws IOException {
- return alignedPageReader.getLazyPointReader();
+ protected IPointReader getPointReader(
+ TimePageReader timePageReader, List<ValuePageReader> valuePageReaders) throws IOException {
+ return new CompactionAlignedPageLazyLoadPointReader(
+ timePageReader, valuePageReaders, this.ignoreAllNullRows);
}
protected void checkAndUpdatePreviousTimestamp(long currentWritingTimestamp) {
@@ -456,8 +453,8 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
private boolean canFlushChunk(ChunkLoader timeChunk, List<ChunkLoader> valueChunks)
throws IOException {
boolean largeEnough =
- timeChunk.getHeader().getDataSize() > targetChunkSize
- || timeChunk.getChunkMetadata().getNumOfPoints() > targetChunkPointNum;
+ timeChunk.getHeader().getDataSize() >= targetChunkSize
+ || timeChunk.getChunkMetadata().getNumOfPoints() >= targetChunkPointNum;
if (timeSchema.getEncodingType() != timeChunk.getHeader().getEncodingType()
|| timeSchema.getCompressor() != timeChunk.getHeader().getCompressionType()) {
return false;
@@ -475,7 +472,7 @@ public class ReadChunkAlignedSeriesCompactionExecutor {
if (valueChunk.getModifiedStatus() == ModifiedStatus.PARTIAL_DELETED) {
return false;
}
- if (valueChunk.getHeader().getDataSize() > targetChunkSize) {
+ if (valueChunk.getHeader().getDataSize() >= targetChunkSize) {
largeEnough = true;
}
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairDataFileScanUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairDataFileScanUtil.java
index 9bbd219b6c9..64439887ae8 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairDataFileScanUtil.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairDataFileScanUtil.java
@@ -117,7 +117,7 @@ public class RepairDataFileScanUtil {
TsFileSequenceReader reader, IDeviceID device, MetadataIndexNode metadataIndexNode)
throws IOException {
List<AlignedChunkMetadata> chunkMetadataList =
- reader.getAlignedChunkMetadataByMetadataIndexNode(device, metadataIndexNode);
+ reader.getAlignedChunkMetadataByMetadataIndexNode(device, metadataIndexNode, false);
for (AlignedChunkMetadata alignedChunkMetadata : chunkMetadataList) {
IChunkMetadata timeChunkMetadata = alignedChunkMetadata.getTimeChunkMetadata();
Chunk timeChunk = reader.readMemChunk((ChunkMetadata) timeChunkMetadata);
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairTimePartitionScanTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairTimePartitionScanTask.java
index 828307e6397..8bbae0af103 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairTimePartitionScanTask.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/repair/RepairTimePartitionScanTask.java
@@ -128,7 +128,8 @@ public class RepairTimePartitionScanTask implements Callable<Void> {
sourceFile,
latch,
sourceFile.isSeq(),
- tsFileManager.getNextCompactionTaskId());
+ tsFileManager.getNextCompactionTaskId(),
+ timePartition.getDatabaseName().startsWith("root."));
if (!submitRepairFileTaskSafely(task)) {
latch.countDown();
}
@@ -160,7 +161,8 @@ public class RepairTimePartitionScanTask implements Callable<Void> {
latch,
true,
false,
- tsFileManager.getNextCompactionTaskId());
+ tsFileManager.getNextCompactionTaskId(),
+ true);
LOGGER.info(
"[RepairScheduler] {} need to repair because it is overlapped with other files",
overlapFile);
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleContext.java
index 205d6b620a4..ec08df4fdf5 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleContext.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleContext.java
@@ -19,7 +19,11 @@
package org.apache.iotdb.db.storageengine.dataregion.compaction.schedule;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskType;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ICrossCompactionPerformer;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ISeqCompactionPerformer;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.IUnseqCompactionPerformer;
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;
@@ -37,11 +41,12 @@ public class CompactionScheduleContext {
private int submitInsertionCrossSpaceCompactionTaskNum = 0;
private int submitSettleCompactionTaskNum = 0;
- // region TTL info
+ // region info
private int fullyDirtyFileNum = 0;
private int partiallyDirtyFileNum = 0;
+ private boolean isTreeModel = true;
// end region
private final Map<TsFileResource, Map<IDeviceID, DeviceInfo>> partitionFileDeviceInfoCache;
@@ -50,6 +55,11 @@ public class CompactionScheduleContext {
this.partitionFileDeviceInfoCache = new HashMap<>();
}
+ public CompactionScheduleContext(boolean isTreeModel) {
+ this();
+ this.isTreeModel = isTreeModel;
+ }
+
public void addResourceDeviceTimeIndex(
TsFileResource tsFileResource, Map<IDeviceID, DeviceInfo> deviceInfoMap) {
partitionFileDeviceInfoCache.put(tsFileResource, deviceInfoMap);
@@ -141,4 +151,32 @@ public class CompactionScheduleContext {
public int getPartiallyDirtyFileNum() {
return partiallyDirtyFileNum;
}
+
+ public ISeqCompactionPerformer getSeqCompactionPerformer() {
+ ISeqCompactionPerformer seqCompactionPerformer =
+ IoTDBDescriptor.getInstance().getConfig().getInnerSeqCompactionPerformer().createInstance();
+ seqCompactionPerformer.setIgnoreAllNullRows(isTreeModel);
+ return seqCompactionPerformer;
+ }
+
+ public IUnseqCompactionPerformer getUnseqCompactionPerformer() {
+ IUnseqCompactionPerformer unseqCompactionPerformer =
+ IoTDBDescriptor.getInstance()
+ .getConfig()
+ .getInnerUnseqCompactionPerformer()
+ .createInstance();
+ unseqCompactionPerformer.setIgnoreAllNullRows(isTreeModel);
+ return unseqCompactionPerformer;
+ }
+
+ public ICrossCompactionPerformer getCrossCompactionPerformer() {
+ ICrossCompactionPerformer crossCompactionPerformer =
+ IoTDBDescriptor.getInstance().getConfig().getCrossCompactionPerformer().createInstance();
+ crossCompactionPerformer.setIgnoreAllNullRows(isTreeModel);
+ return crossCompactionPerformer;
+ }
+
+ public boolean isIgnoreAllNullRows() {
+ return isTreeModel;
+ }
}
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 589ea57c6c3..c465e6fa863 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
@@ -277,7 +277,8 @@ public class CompactionScheduler {
ICrossSpaceSelector crossSpaceCompactionSelector =
config
.getCrossCompactionSelector()
- .createInstance(logicalStorageGroupName, dataRegionId, timePartition, tsFileManager);
+ .createInstance(
+ logicalStorageGroupName, dataRegionId, timePartition, tsFileManager, context);
List<CrossCompactionTaskResource> taskList =
crossSpaceCompactionSelector.selectCrossSpaceTask(
@@ -297,10 +298,7 @@ public class CompactionScheduler {
tsFileManager,
taskList.get(i).getSeqFiles(),
taskList.get(i).getUnseqFiles(),
- IoTDBDescriptor.getInstance()
- .getConfig()
- .getCrossCompactionPerformer()
- .createInstance(),
+ context.getCrossCompactionPerformer(),
memoryCost.get(i),
tsFileManager.getNextCompactionTaskId());
task.setCompactionConfigVersion(compactionConfigVersionWhenSelectTask);
@@ -323,7 +321,12 @@ public class CompactionScheduler {
String dataRegionId = tsFileManager.getDataRegionId();
SettleSelectorImpl settleSelector =
new SettleSelectorImpl(
- heavySelect, logicalStorageGroupName, dataRegionId, timePartition, tsFileManager);
+ heavySelect,
+ logicalStorageGroupName,
+ dataRegionId,
+ timePartition,
+ tsFileManager,
+ context);
long startTime = System.currentTimeMillis();
List<AbstractCompactionTask> taskList = new ArrayList<>();
if (config.isEnableSeqSpaceCompaction()) {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/CrossCompactionSelector.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/CrossCompactionSelector.java
index 061b8e882d1..dc0b019dd47 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/CrossCompactionSelector.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/constant/CrossCompactionSelector.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.ICrossSpaceSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager;
@@ -39,12 +40,13 @@ public enum CrossCompactionSelector {
String logicalStorageGroupName,
String virtualGroupId,
long timePartition,
- TsFileManager tsFileManager) {
+ TsFileManager tsFileManager,
+ CompactionScheduleContext context) {
switch (this) {
case REWRITE:
default:
return new RewriteCrossSpaceCompactionSelector(
- logicalStorageGroupName, virtualGroupId, timePartition, tsFileManager);
+ logicalStorageGroupName, virtualGroupId, timePartition, tsFileManager, context);
}
}
}
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 08bc8a1919c..ea191f25853 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
@@ -54,7 +54,7 @@ public enum InnerSequenceCompactionSelector {
case SIZE_TIERED_SINGLE_TARGET:
default:
return new SizeTieredCompactionSelector(
- storageGroupName, dataRegionId, timePartition, true, tsFileManager);
+ storageGroupName, dataRegionId, timePartition, true, tsFileManager, context);
}
}
}
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 e6e4cc6a6fe..1624254aa1d 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
@@ -55,7 +55,7 @@ public enum InnerUnsequenceCompactionSelector {
case SIZE_TIERED_SINGLE_TARGET:
default:
return new SizeTieredCompactionSelector(
- storageGroupName, dataRegionId, timePartition, false, tsFileManager);
+ storageGroupName, dataRegionId, timePartition, false, tsFileManager, context);
}
}
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/NewSizeTieredCompactionSelector.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/NewSizeTieredCompactionSelector.java
index 802e0afd140..3583ee90f7d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/NewSizeTieredCompactionSelector.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/NewSizeTieredCompactionSelector.java
@@ -50,7 +50,6 @@ public class NewSizeTieredCompactionSelector extends SizeTieredCompactionSelecto
private final int totalFileNumLowerBound;
private final long singleFileSizeThreshold;
private final int maxLevelGap;
- private final CompactionScheduleContext context;
private boolean isActiveTimePartition;
public NewSizeTieredCompactionSelector(
@@ -60,7 +59,7 @@ public class NewSizeTieredCompactionSelector extends SizeTieredCompactionSelecto
boolean sequence,
TsFileManager tsFileManager,
CompactionScheduleContext context) {
- super(storageGroupName, dataRegionId, timePartition, sequence, tsFileManager);
+ super(storageGroupName, dataRegionId, timePartition, sequence, tsFileManager, context);
double availableDiskSpaceInByte =
MetricService.getInstance()
.getAutoGauge(
@@ -80,7 +79,6 @@ public class NewSizeTieredCompactionSelector extends SizeTieredCompactionSelecto
Math.min(config.getInnerCompactionTotalFileSizeThresholdInByte(), maxDiskSizeForTempFiles);
this.singleFileSizeThreshold =
Math.min(config.getTargetCompactionFileSize(), maxDiskSizeForTempFiles);
- this.context = context;
}
@Override
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 7a379a2b42a..4c72c0dd053 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
@@ -73,13 +73,14 @@ public class RewriteCrossSpaceCompactionSelector implements ICrossSpaceSelector
private final long maxCrossCompactionFileSize;
private final AbstractCrossSpaceEstimator compactionEstimator;
- private CompactionScheduleContext context;
+ private final CompactionScheduleContext context;
public RewriteCrossSpaceCompactionSelector(
String logicalStorageGroupName,
String dataRegionId,
long timePartition,
- TsFileManager tsFileManager) {
+ TsFileManager tsFileManager,
+ CompactionScheduleContext context) {
this.logicalStorageGroupName = logicalStorageGroupName;
this.dataRegionId = dataRegionId;
this.timePartition = timePartition;
@@ -98,16 +99,6 @@ 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;
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SettleSelectorImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SettleSelectorImpl.java
index 5b72740933b..cf60c55108e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SettleSelectorImpl.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SettleSelectorImpl.java
@@ -28,6 +28,7 @@ import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCach
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ICompactionPerformer;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.SettleCompactionTask;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.CompactionUtils;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.ISettleSelector;
import org.apache.iotdb.db.storageengine.dataregion.modification.Deletion;
import org.apache.iotdb.db.storageengine.dataregion.modification.Modification;
@@ -68,18 +69,21 @@ public class SettleSelectorImpl implements ISettleSelector {
private final long timePartition;
private final TsFileManager tsFileManager;
private boolean isSeq;
+ private final CompactionScheduleContext context;
public SettleSelectorImpl(
boolean heavySelect,
String storageGroupName,
String dataRegionId,
long timePartition,
- TsFileManager tsFileManager) {
+ TsFileManager tsFileManager,
+ CompactionScheduleContext context) {
this.heavySelect = heavySelect;
this.storageGroupName = storageGroupName;
this.dataRegionId = dataRegionId;
this.timePartition = timePartition;
this.tsFileManager = tsFileManager;
+ this.context = context;
}
static class FileDirtyInfo {
@@ -307,15 +311,7 @@ public class SettleSelectorImpl implements ISettleSelector {
}
private ICompactionPerformer createCompactionPerformer() {
- return isSeq
- ? IoTDBDescriptor.getInstance()
- .getConfig()
- .getInnerSeqCompactionPerformer()
- .createInstance()
- : IoTDBDescriptor.getInstance()
- .getConfig()
- .getInnerUnseqCompactionPerformer()
- .createInstance();
+ return isSeq ? context.getSeqCompactionPerformer() : context.getUnseqCompactionPerformer();
}
enum DirtyStatus {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SizeTieredCompactionSelector.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SizeTieredCompactionSelector.java
index 65401dcef25..a23c4dbf438 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SizeTieredCompactionSelector.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SizeTieredCompactionSelector.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ICompactionPerformer;
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.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskManager;
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.comparator.ICompactionTaskComparator;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.IInnerSeqSpaceSelector;
@@ -61,6 +62,7 @@ public class SizeTieredCompactionSelector
protected static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
protected String storageGroupName;
protected String dataRegionId;
+ protected final CompactionScheduleContext context;
protected long timePartition;
protected List<TsFileResource> tsFileResources;
protected boolean sequence;
@@ -72,13 +74,15 @@ public class SizeTieredCompactionSelector
String dataRegionId,
long timePartition,
boolean sequence,
- TsFileManager tsFileManager) {
+ TsFileManager tsFileManager,
+ CompactionScheduleContext context) {
this.storageGroupName = storageGroupName;
this.dataRegionId = dataRegionId;
this.timePartition = timePartition;
this.sequence = sequence;
this.tsFileManager = tsFileManager;
- hasNextTimePartition = tsFileManager.hasNextTimePartition(timePartition, sequence);
+ this.hasNextTimePartition = tsFileManager.hasNextTimePartition(timePartition, sequence);
+ this.context = context;
}
/**
@@ -219,22 +223,15 @@ public class SizeTieredCompactionSelector
tsFileManager,
resource,
sequence,
- tsFileManager.getNextCompactionTaskId()));
+ tsFileManager.getNextCompactionTaskId(),
+ context.isIgnoreAllNullRows()));
}
}
return taskList;
}
protected ICompactionPerformer createCompactionPerformer() {
- return sequence
- ? IoTDBDescriptor.getInstance()
- .getConfig()
- .getInnerSeqCompactionPerformer()
- .createInstance()
- : IoTDBDescriptor.getInstance()
- .getConfig()
- .getInnerUnseqCompactionPerformer()
- .createInstance();
+ return sequence ? context.getSeqCompactionPerformer() : context.getUnseqCompactionPerformer();
}
protected int searchMaxFileLevel() throws IOException {
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 c12ec32741a..a0a0c6f347d 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
@@ -47,12 +47,12 @@ public class CrossSpaceCompactionCandidate {
@TestOnly
public CrossSpaceCompactionCandidate(
List<TsFileResource> seqFiles, List<TsFileResource> unseqFiles) {
- init(seqFiles, unseqFiles, null);
+ init(seqFiles, unseqFiles, new CompactionScheduleContext());
}
public CrossSpaceCompactionCandidate(
List<TsFileResource> seqFiles, List<TsFileResource> unseqFiles, long ttlLowerBound) {
- this(seqFiles, unseqFiles, ttlLowerBound, null);
+ this(seqFiles, unseqFiles, ttlLowerBound, new CompactionScheduleContext());
}
public CrossSpaceCompactionCandidate(
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 2832109714d..7356f1aa624 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
@@ -76,6 +76,7 @@ public class TsFileResourceCandidate {
if (deviceInfoMap == null && compactionScheduleContext != null) {
// get device info from cache
deviceInfoMap = compactionScheduleContext.getResourceDeviceInfo(this.resource);
+ hasDetailedDeviceInfo = true;
}
if (deviceInfoMap != null) {
return;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java
index f35c766ea58..48f6e77a335 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java
@@ -842,7 +842,8 @@ public class AbstractCompactionTest {
protected List<IFullPath> getPaths(List<TsFileResource> resources)
throws IOException, IllegalPathException {
Set<IFullPath> paths = new HashSet<>();
- try (MultiTsFileDeviceIterator deviceIterator = new MultiTsFileDeviceIterator(resources)) {
+ try (MultiTsFileDeviceIterator deviceIterator =
+ new MultiTsFileDeviceIterator(resources, false)) {
while (deviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> iDeviceIDBooleanPair = deviceIterator.nextDevice();
IDeviceID deviceID = iDeviceIDBooleanPair.getLeft();
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CrossSpaceCompactionWithUnusualCasesTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CrossSpaceCompactionWithUnusualCasesTest.java
index b24f025dcda..260068805fa 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CrossSpaceCompactionWithUnusualCasesTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CrossSpaceCompactionWithUnusualCasesTest.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.exception.StorageEngineException;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.CrossCompactionTaskResource;
import org.apache.iotdb.db.storageengine.dataregion.compaction.utils.TsFileGeneratorUtils;
@@ -113,7 +114,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -169,7 +171,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -237,7 +240,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -316,7 +320,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -399,7 +404,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -447,7 +453,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -533,7 +540,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -583,7 +591,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -639,7 +648,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -698,7 +708,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -765,7 +776,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -825,7 +837,8 @@ public class CrossSpaceCompactionWithUnusualCasesTest extends AbstractCompaction
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> result =
selector.selectCrossSpaceTask(seqResources, unseqResources);
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastCompactionPerformerWithInconsistentCompressionTypeAndEncodingTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastCompactionPerformerWithInconsistentCompressionTypeAndEncodingTest.java
index 5a9580fba02..55cb8625da3 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastCompactionPerformerWithInconsistentCompressionTypeAndEncodingTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastCompactionPerformerWithInconsistentCompressionTypeAndEncodingTest.java
@@ -622,7 +622,8 @@ public class FastCompactionPerformerWithInconsistentCompressionTypeAndEncodingTe
throws IOException {
Map<String, CompressionType> compressionTypeMap = new HashMap<>();
for (IDeviceID device : reader.getAllDevices()) {
- List<AlignedChunkMetadata> alignedChunkMetadataList = reader.getAlignedChunkMetadata(device);
+ List<AlignedChunkMetadata> alignedChunkMetadataList =
+ reader.getAlignedChunkMetadata(device, true);
for (AlignedChunkMetadata alignedChunkMetadata : alignedChunkMetadataList) {
IChunkMetadata timeChunkMetadata = alignedChunkMetadata.getTimeChunkMetadata();
List<IChunkMetadata> valueChunkMetadataList =
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastInnerCompactionPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastInnerCompactionPerformerTest.java
index 8d4abdeecf8..8c9088f5ceb 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastInnerCompactionPerformerTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastInnerCompactionPerformerTest.java
@@ -2049,7 +2049,7 @@ public class FastInnerCompactionPerformerTest extends AbstractCompactionTest {
try (TsFileSequenceReader reader = new TsFileSequenceReader(targetResource.getTsFilePath())) {
List<AlignedChunkMetadata> chunkMetadataList =
reader.getAlignedChunkMetadata(
- IDeviceID.Factory.DEFAULT_FACTORY.create("root.testsg.d1"));
+ IDeviceID.Factory.DEFAULT_FACTORY.create("root.testsg.d1"), true);
for (AlignedChunkMetadata alignedChunkMetadata : chunkMetadataList) {
ChunkMetadata timeChunkMetadata =
(ChunkMetadata) alignedChunkMetadata.getTimeChunkMetadata();
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionSelectorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionSelectorTest.java
index 8b43043d968..894de73da95 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionSelectorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionSelectorTest.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactio
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.exception.FileCannotTransitToCompactingException;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.AbstractCompactionTask;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.CrossSpaceCompactionTask;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskQueue;
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.comparator.DefaultCompactionTaskComparatorImpl;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
@@ -74,7 +75,7 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
throws IOException, MetadataException, WriteProcessException {
createFiles(5, 2, 3, 50, 0, 10000, 50, 50, false, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(0, selected.size());
@@ -87,7 +88,7 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
createFiles(5, 2, 3, 50, 0, 10000, 50, 50, false, false);
seqResources.get(0).setStatusForTest(TsFileResourceStatus.UNCLOSED);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(0, selected.size());
@@ -99,7 +100,7 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
createFiles(1, 2, 3, 50, 0, 10000, 50, 50, false, true);
createFiles(5, 2, 3, 50, 0, 10000, 50, 50, false, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(1, selected.size());
@@ -120,7 +121,7 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
createFiles(5, 2, 3, 50, 0, 10000, 50, 50, false, false);
seqResources.get(1).setStatusForTest(TsFileResourceStatus.UNCLOSED);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(1, selected.size());
@@ -155,7 +156,7 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
createFiles(1, 2, 3, 50, 0, 10000, 50, 50, false, false);
createFiles(1, 2, 3, 50, 0, 10000, 50, 50, false, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(1, selected.size());
@@ -169,7 +170,7 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
createFiles(2, 2, 3, 50, 0, 10000, 50, 50, false, true);
createFiles(5, 2, 3, 50, 0, 10000, 50, 50, false, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(1, selected.size());
@@ -196,7 +197,7 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
createFiles(19, 2, 3, 50, 0, 10000, 50, 50, false, true);
createFiles(1, 2, 3, 3000, 0, 10000, 50, 50, false, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(1, selected.size());
@@ -266,7 +267,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
cd1.countDown();
cd2.await();
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
seqResources, unseqResources, System.currentTimeMillis() - Long.MAX_VALUE);
@@ -335,7 +337,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -446,7 +449,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -551,7 +555,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -671,7 +676,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -787,7 +793,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -896,7 +903,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -1018,7 +1026,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
cd1.countDown();
cd2.await();
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
seqResources, unseqResources, System.currentTimeMillis() - Long.MAX_VALUE);
@@ -1089,7 +1098,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
cd1.countDown();
cd2.await();
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
seqResources, unseqResources, System.currentTimeMillis() - Long.MAX_VALUE);
@@ -1158,7 +1168,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -1270,7 +1281,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -1376,7 +1388,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -1497,7 +1510,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -1612,7 +1626,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -1721,7 +1736,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
// copy candidate source file list and add read lock
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
@@ -1843,7 +1859,8 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest {
cd1.countDown();
cd2.await();
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
CrossSpaceCompactionCandidate candidate =
new CrossSpaceCompactionCandidate(
seqResources, unseqResources, System.currentTimeMillis() - Long.MAX_VALUE);
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithFastPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithFastPerformerTest.java
index 6ce367f7a84..e327114ca5c 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithFastPerformerTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithFastPerformerTest.java
@@ -28,6 +28,7 @@ import org.apache.iotdb.db.storageengine.buffer.TimeSeriesMetadataCache;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.FastCompactionPerformer;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.AbstractCompactionTask;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.CrossSpaceCompactionTask;
+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.impl.RewriteCrossSpaceCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.CrossCompactionTaskResource;
@@ -411,7 +412,8 @@ public class CrossSpaceCompactionWithFastPerformerTest {
new CrossSpaceCompactionCandidate(
seqTsFileResourceList, unseqTsFileResourceList, timeLowerBound);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqTsFileResourceList, unseqTsFileResourceList);
index++;
@@ -712,7 +714,8 @@ public class CrossSpaceCompactionWithFastPerformerTest {
new CrossSpaceCompactionCandidate(
seqTsFileResourceList, unseqTsFileResourceList, timeLowerBound);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqTsFileResourceList, unseqTsFileResourceList);
if (selected.size() > 0) {
@@ -1011,7 +1014,8 @@ public class CrossSpaceCompactionWithFastPerformerTest {
new CrossSpaceCompactionCandidate(
seqTsFileResourceList, unseqTsFileResourceList, timeLowerBound);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqTsFileResourceList, unseqTsFileResourceList);
if (selected.size() > 0) {
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 c34144c0c1e..b076755229e 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
@@ -37,6 +37,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.Cros
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.InnerSpaceCompactionTask;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.subtask.FastCompactionTaskSummary;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.CompactionUtils;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.ICompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.ICrossSpaceSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
@@ -121,7 +122,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(1, selected.get(0).getSeqFiles().size());
@@ -163,7 +164,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -207,7 +208,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -257,7 +258,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -305,7 +306,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -354,7 +355,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -402,7 +403,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -451,7 +452,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -503,7 +504,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -553,7 +554,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -604,7 +605,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -653,7 +654,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -704,7 +705,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -756,7 +757,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -807,7 +808,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -860,7 +861,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -914,7 +915,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -967,7 +968,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1021,7 +1022,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1075,7 +1076,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1129,7 +1130,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1179,7 +1180,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1229,7 +1230,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1280,7 +1281,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1329,7 +1330,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1380,7 +1381,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1432,7 +1433,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1483,7 +1484,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1536,7 +1537,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1590,7 +1591,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1643,7 +1644,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1697,7 +1698,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1751,7 +1752,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1805,7 +1806,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1859,7 +1860,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1912,7 +1913,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
// Assert.assertEquals(0, result.length);
@@ -1958,7 +1959,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -2010,7 +2011,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -2064,7 +2065,7 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -2124,7 +2125,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
// 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<CrossCompactionTaskResource> selected =
@@ -2218,7 +2220,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2260,7 +2263,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getInnerSequenceCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager, null);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
Assert.assertEquals(0, innerSelector.selectInnerSpaceTask(targetResources).size());
// first compaction task finishes successfully
@@ -2326,7 +2330,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
// inner seq space compact
List<InnerSpaceCompactionTask> taskResources =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : taskResources) {
Assert.assertTrue(task.start());
@@ -2337,7 +2342,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2399,7 +2405,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
// inner seq space compact
List<InnerSpaceCompactionTask> taskResources =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : taskResources) {
Assert.assertTrue(task.start());
@@ -2410,7 +2417,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2472,7 +2480,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
Assert.assertTrue(task.start());
@@ -2483,7 +2492,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2546,7 +2556,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
Assert.assertTrue(task.start());
@@ -2557,7 +2568,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2627,7 +2639,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
Assert.assertTrue(task.start());
@@ -2638,7 +2651,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2706,7 +2720,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
Assert.assertTrue(task.start());
@@ -2717,7 +2732,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2786,7 +2802,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
Assert.assertTrue(task.start());
@@ -2797,7 +2814,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2867,7 +2885,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
Assert.assertTrue(task.start());
@@ -2878,7 +2897,8 @@ public class CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithReadPointPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithReadPointPerformerTest.java
index 9309736f07f..3c194a4e3d1 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithReadPointPerformerTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithReadPointPerformerTest.java
@@ -28,6 +28,7 @@ import org.apache.iotdb.db.storageengine.buffer.TimeSeriesMetadataCache;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.ReadPointCompactionPerformer;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.AbstractCompactionTask;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.CrossSpaceCompactionTask;
+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.impl.RewriteCrossSpaceCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.CrossCompactionTaskResource;
@@ -410,7 +411,8 @@ public class CrossSpaceCompactionWithReadPointPerformerTest {
new CrossSpaceCompactionCandidate(
seqTsFileResourceList, unseqTsFileResourceList, timeLowerBound);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqTsFileResourceList, unseqTsFileResourceList);
index++;
@@ -711,7 +713,8 @@ public class CrossSpaceCompactionWithReadPointPerformerTest {
new CrossSpaceCompactionCandidate(
seqTsFileResourceList, unseqTsFileResourceList, timeLowerBound);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqTsFileResourceList, unseqTsFileResourceList);
if (selected.size() > 0) {
@@ -1010,7 +1013,8 @@ public class CrossSpaceCompactionWithReadPointPerformerTest {
new CrossSpaceCompactionCandidate(
seqTsFileResourceList, unseqTsFileResourceList, timeLowerBound);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqTsFileResourceList, unseqTsFileResourceList);
if (selected.size() > 0) {
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithReadPointPerformerValidationTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithReadPointPerformerValidationTest.java
index 690024f6bf2..77d5a66c301 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithReadPointPerformerValidationTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionWithReadPointPerformerValidationTest.java
@@ -38,6 +38,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.Comp
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.utils.CompactionUtils;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.ICrossSpaceSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.SizeTieredCompactionSelector;
@@ -120,7 +121,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
Assert.assertEquals(1, selected.get(0).getSeqFiles().size());
@@ -162,7 +163,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -206,7 +207,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -256,7 +257,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -304,7 +305,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -353,7 +354,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -401,7 +402,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -450,7 +451,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -502,7 +503,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -552,7 +553,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -603,7 +604,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -652,7 +653,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -703,7 +704,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -755,7 +756,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -806,7 +807,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -859,7 +860,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -913,7 +914,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -966,7 +967,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1020,7 +1021,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1074,7 +1075,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1128,7 +1129,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1178,7 +1179,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1228,7 +1229,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1279,7 +1280,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1328,7 +1329,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1379,7 +1380,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1431,7 +1432,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1482,7 +1483,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1535,7 +1536,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1589,7 +1590,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1642,7 +1643,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1696,7 +1697,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1750,7 +1751,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1804,7 +1805,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1858,7 +1859,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -1911,7 +1912,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
// Assert.assertEquals(0, result.length);
@@ -1957,7 +1958,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -2009,7 +2010,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -2063,7 +2064,7 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
@@ -2127,7 +2128,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
// 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<CrossCompactionTaskResource> selected =
@@ -2174,7 +2176,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
task.start();
@@ -2185,7 +2188,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2247,7 +2251,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
task.start();
@@ -2258,7 +2263,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2321,7 +2327,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
task.start();
@@ -2332,7 +2339,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2396,7 +2404,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
task.start();
@@ -2407,7 +2416,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2477,7 +2487,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
task.start();
@@ -2488,7 +2499,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2557,7 +2569,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
task.start();
@@ -2568,7 +2581,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2638,7 +2652,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
task.start();
@@ -2649,7 +2664,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
@@ -2720,7 +2736,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
// inner seq space compact
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
- new SizeTieredCompactionSelector(COMPACTION_TEST_SG, "0", 0, true, tsFileManager)
+ new SizeTieredCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, true, tsFileManager, new CompactionScheduleContext())
.selectInnerSpaceTask(tsFileManager.getOrCreateSequenceListByTimePartition(0));
for (InnerSpaceCompactionTask task : innerSpaceCompactionTasks) {
task.start();
@@ -2731,7 +2748,8 @@ public class CrossSpaceCompactionWithReadPointPerformerValidationTest
IoTDBDescriptor.getInstance()
.getConfig()
.getCrossCompactionSelector()
- .createInstance(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ .createInstance(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
CrossCompactionTaskResource sourceFiles =
crossSpaceCompactionSelector
.selectCrossSpaceTask(
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionRecoverTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionRecoverTest.java
index 824e45af0a1..c3071dc96b7 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionRecoverTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionRecoverTest.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactio
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.InsertionCrossSpaceCompactionTask;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.CompactionLogger;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.SimpleCompactionLogger;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.CrossSpaceCompactionCandidate;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.InsertionCrossCompactionTaskResource;
@@ -116,7 +117,8 @@ public class InsertionCrossSpaceCompactionRecoverTest extends AbstractCompaction
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource taskResource =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -203,7 +205,8 @@ public class InsertionCrossSpaceCompactionRecoverTest extends AbstractCompaction
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource taskResource =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -294,7 +297,8 @@ public class InsertionCrossSpaceCompactionRecoverTest extends AbstractCompaction
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource taskResource =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -387,7 +391,8 @@ public class InsertionCrossSpaceCompactionRecoverTest extends AbstractCompaction
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource taskResource =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionSelectorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionSelectorTest.java
index e29968cd7bf..6a86b3955f9 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionSelectorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionSelectorTest.java
@@ -92,7 +92,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -199,7 +200,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -234,7 +236,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -268,7 +271,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -305,7 +309,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -334,7 +339,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -364,7 +370,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -394,7 +401,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -423,7 +431,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -450,7 +459,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -482,7 +492,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -514,7 +525,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -549,7 +561,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -593,7 +606,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -637,7 +651,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -673,7 +688,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -713,7 +729,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -741,7 +758,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource result =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -783,7 +801,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -829,7 +848,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -875,7 +895,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -917,7 +938,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -965,7 +987,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1061,7 +1084,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource taskResource;
int i = 1;
@@ -1123,7 +1147,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
seqResources.add(seqResource3);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1169,7 +1194,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
unseqResources.add(unseqResource1);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1272,7 +1298,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1360,7 +1387,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
unseqResources.add(unseqResource2);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1443,7 +1471,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
unseqResources.add(unseqResource2);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1544,7 +1573,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource taskResource;
int i = 1;
@@ -1611,7 +1641,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
degradeTimeIndex();
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1664,7 +1695,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
degradeTimeIndex();
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1774,7 +1806,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
tsFileManager.addAll(unseqResources, false);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1871,7 +1904,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
degradeTimeIndex();
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
@@ -1965,7 +1999,8 @@ public class InsertionCrossSpaceCompactionSelectorTest extends AbstractCompactio
degradeTimeIndex();
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("root.testsg", "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "root.testsg", "0", 0, tsFileManager, new CompactionScheduleContext());
InsertionCrossCompactionTaskResource task =
selector.selectOneInsertionTask(
new CrossSpaceCompactionCandidate(seqResources, unseqResources));
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 b286f7bdfa4..431b9bb9329 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
@@ -95,7 +95,8 @@ public class InsertionCrossSpaceCompactionTest extends AbstractCompactionTest {
unseqResource1.setStatusForTest(TsFileResourceStatus.NORMAL);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
seqResources.add(seqResource1);
seqResources.add(seqResource2);
unseqResources.add(unseqResource1);
@@ -137,7 +138,8 @@ public class InsertionCrossSpaceCompactionTest extends AbstractCompactionTest {
unseqResource1.setStatusForTest(TsFileResourceStatus.NORMAL);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
seqResources.add(seqResource1);
unseqResources.add(unseqResource1);
tsFileManager.addAll(seqResources, true);
@@ -177,7 +179,8 @@ public class InsertionCrossSpaceCompactionTest extends AbstractCompactionTest {
unseqResource1.setStatusForTest(TsFileResourceStatus.NORMAL);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
seqResources.add(seqResource1);
unseqResources.add(unseqResource1);
tsFileManager.addAll(seqResources, true);
@@ -221,7 +224,8 @@ public class InsertionCrossSpaceCompactionTest extends AbstractCompactionTest {
unseqResource1.setStatusForTest(TsFileResourceStatus.NORMAL);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
seqResources.add(seqResource1);
seqResources.add(seqResource2);
unseqResources.add(unseqResource1);
@@ -259,7 +263,8 @@ public class InsertionCrossSpaceCompactionTest extends AbstractCompactionTest {
unseqResource1.setStatusForTest(TsFileResourceStatus.NORMAL);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector(COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
unseqResources.add(unseqResource1);
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, false);
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/MergeUpgradeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/MergeUpgradeTest.java
index b326a7dd0dd..0a1d5b02f7e 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/MergeUpgradeTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/MergeUpgradeTest.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.db.storageengine.dataregion.compaction.cross;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.exception.MergeException;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.CrossCompactionTaskResource;
import org.apache.iotdb.db.storageengine.dataregion.compaction.utils.CompactionConfigRestorer;
@@ -87,7 +88,8 @@ public class MergeUpgradeTest {
tsFileManager.addAll(seqResources, true);
tsFileManager.addAll(unseqResources, true);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, tsFileManager);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, tsFileManager, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
assertEquals(0, selected.size());
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCompactionFileSelectorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCompactionFileSelectorTest.java
index 2c80a0c85e8..16ca83ccc16 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCompactionFileSelectorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCompactionFileSelectorTest.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.exception.MergeException;
import org.apache.iotdb.db.exception.StorageEngineException;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.RewriteCrossSpaceCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.CrossCompactionTaskResource;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.utils.CrossSpaceCompactionCandidate;
@@ -85,7 +86,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
@Test
public void testFullSelection() throws MergeException, IOException {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
List<TsFileResource> seqSelected = selected.get(0).getSeqFiles();
@@ -93,14 +94,16 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
assertEquals(seqResources, seqSelected);
assertEquals(unseqResources, unseqSelected);
- selector = new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ selector =
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
selected = selector.selectCrossSpaceTask(seqResources.subList(0, 1), unseqResources);
seqSelected = selected.get(0).getSeqFiles();
unseqSelected = selected.get(0).getUnseqFiles();
assertEquals(seqResources.subList(0, 1), seqSelected);
assertEquals(unseqResources, unseqSelected);
- selector = new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ selector =
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
selected = selector.selectCrossSpaceTask(seqResources, unseqResources.subList(0, 1));
seqSelected = selected.get(0).getSeqFiles();
unseqSelected = selected.get(0).getUnseqFiles();
@@ -113,7 +116,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
assertEquals(1, selected.size());
@@ -124,7 +127,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
List<TsFileResource> seqSelected = selected.get(0).getSeqFiles();
@@ -182,7 +185,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
List<TsFileResource> newUnseqResources = new ArrayList<>();
newUnseqResources.add(largeUnseqTsFileResource);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, newUnseqResources);
assertEquals(0, selected.size());
@@ -271,7 +274,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
CrossSpaceCompactionCandidate resource =
new CrossSpaceCompactionCandidate(seqResources, unseqResources);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
assertEquals(2, selected.get(0).getSeqFiles().size());
@@ -334,7 +337,8 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
29000L * IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount());
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector(
+ "", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqList, unseqList);
assertEquals(1, selected.get(0).getSeqFiles().size());
@@ -417,7 +421,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
* IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount());
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqList, unseqList);
Assert.assertEquals(1, selected.size());
@@ -490,7 +494,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
* IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount());
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqList, unseqList);
Assert.assertEquals(1, selected.size());
@@ -563,7 +567,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
* IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount());
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqList, unseqList);
Assert.assertEquals(1, selected.size());
@@ -639,7 +643,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
* IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount());
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqList, unseqList);
Assert.assertEquals(1, selected.size());
@@ -718,7 +722,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
* IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount());
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqList, unseqList);
Assert.assertEquals(1, selected.size());
@@ -950,7 +954,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
* IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount());
try {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqList, unseqList);
Assert.assertEquals(1, selected.size());
@@ -967,7 +971,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
IoTDBDescriptor.getInstance().getConfig().getFileLimitPerCrossTask();
IoTDBDescriptor.getInstance().getConfig().setFileLimitPerCrossTask(5);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
assertEquals(1, selected.size());
@@ -987,7 +991,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
IoTDBDescriptor.getInstance().getConfig().setFileLimitPerCrossTask(1);
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources);
assertEquals(1, selected.size());
@@ -1002,7 +1006,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
@Test
public void testDeleteInSelection() throws Exception {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
AtomicBoolean fail = new AtomicBoolean(false);
Thread thread1 =
new Thread(
@@ -1038,7 +1042,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
@Test
public void testDeleteAndDegradeInSelection() throws Exception {
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
AtomicBoolean fail = new AtomicBoolean(false);
Thread thread1 =
new Thread(
@@ -1078,7 +1082,7 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
.getConfig()
.setTargetCompactionFileSize(unseqResources.get(5).getTsFileSize());
RewriteCrossSpaceCompactionSelector selector =
- new RewriteCrossSpaceCompactionSelector("", "", 0, null);
+ new RewriteCrossSpaceCompactionSelector("", "", 0, null, new CompactionScheduleContext());
List<CrossCompactionTaskResource> selected =
selector.selectCrossSpaceTask(seqResources, unseqResources.subList(5, 6));
Assert.assertEquals(1, selected.size());
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSpaceCompactionSelectorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSpaceCompactionSelectorTest.java
index 082357a9b0e..ddc223faa40 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSpaceCompactionSelectorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSpaceCompactionSelectorTest.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactio
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.exception.FileCannotTransitToCompactingException;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.FastCompactionPerformer;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.InnerSpaceCompactionTask;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.SizeTieredCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.modification.Deletion;
import org.apache.iotdb.db.storageengine.dataregion.modification.ModificationFile;
@@ -81,7 +82,8 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest {
// the file is deleted before selection
cd.await();
SizeTieredCompactionSelector selector =
- new SizeTieredCompactionSelector("", "", 0, true, tsFileManager);
+ new SizeTieredCompactionSelector(
+ "", "", 0, true, tsFileManager, new CompactionScheduleContext());
List<TsFileResource> resources =
tsFileManager.getOrCreateSequenceListByTimePartition(0);
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
@@ -145,7 +147,8 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
SizeTieredCompactionSelector selector =
- new SizeTieredCompactionSelector("", "", 0, true, tsFileManager);
+ new SizeTieredCompactionSelector(
+ "", "", 0, true, tsFileManager, new CompactionScheduleContext());
// copy candidate source file list
List<TsFileResource> resources =
tsFileManager.getOrCreateSequenceListByTimePartition(0);
@@ -251,7 +254,8 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
SizeTieredCompactionSelector selector =
- new SizeTieredCompactionSelector("", "", 0, true, tsFileManager);
+ new SizeTieredCompactionSelector(
+ "", "", 0, true, tsFileManager, new CompactionScheduleContext());
// copy candidate source file list
List<TsFileResource> resources =
tsFileManager.getOrCreateSequenceListByTimePartition(0);
@@ -373,7 +377,8 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest {
cd1.countDown();
cd2.await();
SizeTieredCompactionSelector selector =
- new SizeTieredCompactionSelector("", "", 0, true, tsFileManager);
+ new SizeTieredCompactionSelector(
+ "", "", 0, true, tsFileManager, new CompactionScheduleContext());
List<TsFileResource> resources =
tsFileManager.getOrCreateSequenceListByTimePartition(0);
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
@@ -441,7 +446,8 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
SizeTieredCompactionSelector selector =
- new SizeTieredCompactionSelector("", "", 0, true, tsFileManager);
+ new SizeTieredCompactionSelector(
+ "", "", 0, true, tsFileManager, new CompactionScheduleContext());
// copy candidate source file list
List<TsFileResource> resources =
tsFileManager.getOrCreateSequenceListByTimePartition(0);
@@ -550,7 +556,8 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest {
() -> {
try {
SizeTieredCompactionSelector selector =
- new SizeTieredCompactionSelector("", "", 0, true, tsFileManager);
+ new SizeTieredCompactionSelector(
+ "", "", 0, true, tsFileManager, new CompactionScheduleContext());
// copy candidate source file list
List<TsFileResource> resources =
tsFileManager.getOrCreateSequenceListByTimePartition(0);
@@ -665,7 +672,8 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest {
mockModiFicationFile.write(new Deletion(new MeasurementPath("root.a.b"), 1, 1));
seqResources.get(0).setModFile(mockModiFicationFile);
SizeTieredCompactionSelector selector =
- new SizeTieredCompactionSelector("", "", 0, true, tsFileManager);
+ new SizeTieredCompactionSelector(
+ "", "", 0, true, tsFileManager, new CompactionScheduleContext());
// copy candidate source file list
List<TsFileResource> resources = tsFileManager.getOrCreateSequenceListByTimePartition(0);
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
@@ -689,7 +697,8 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest {
seqResources.get(0).setModFile(mockModiFicationFile);
seqResources.get(0).setStatusForTest(TsFileResourceStatus.COMPACTING);
SizeTieredCompactionSelector selector =
- new SizeTieredCompactionSelector("", "", 0, true, tsFileManager);
+ new SizeTieredCompactionSelector(
+ "", "", 0, true, tsFileManager, new CompactionScheduleContext());
// copy candidate source file list
List<TsFileResource> resources = tsFileManager.getOrCreateSequenceListByTimePartition(0);
List<InnerSpaceCompactionTask> innerSpaceCompactionTasks =
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/sizetiered/SizeTieredCompactionSelectorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/sizetiered/SizeTieredCompactionSelectorTest.java
index 1e7cc0450da..ec87a22ac24 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/sizetiered/SizeTieredCompactionSelectorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/sizetiered/SizeTieredCompactionSelectorTest.java
@@ -20,6 +20,7 @@
package org.apache.iotdb.db.storageengine.dataregion.compaction.inner.sizetiered;
import org.apache.iotdb.commons.conf.CommonDescriptor;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.SizeTieredCompactionSelector;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.FakedTsFileResource;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager;
@@ -57,14 +58,16 @@ public class SizeTieredCompactionSelectorTest {
for (long i = 0; i < 9; ++i) {
Assert.assertEquals(
1,
- new SizeTieredCompactionSelector("root.test", "0", i, true, manager)
+ new SizeTieredCompactionSelector(
+ "root.test", "0", i, true, manager, new CompactionScheduleContext())
.selectInnerSpaceTask(manager.getOrCreateSequenceListByTimePartition(i))
.size());
}
Assert.assertEquals(
0,
- new SizeTieredCompactionSelector("root.test", "0", 9, true, manager)
+ new SizeTieredCompactionSelector(
+ "root.test", "0", 9, true, manager, new CompactionScheduleContext())
.selectInnerSpaceTask(manager.getOrCreateSequenceListByTimePartition(9))
.size());
}
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 374969a0a4d..9e58259d722 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
@@ -113,7 +113,7 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
}
Assert.assertFalse(TsFileResourceUtils.validateTsFileDataCorrectness(resource));
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0, true);
task.start();
Assert.assertEquals(0, tsFileManager.getTsFileList(true).size());
Assert.assertEquals(1, tsFileManager.getTsFileList(false).size());
@@ -137,7 +137,7 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
}
Assert.assertFalse(TsFileResourceUtils.validateTsFileDataCorrectness(resource));
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0, true);
task.start();
Assert.assertEquals(0, tsFileManager.getTsFileList(true).size());
Assert.assertEquals(1, tsFileManager.getTsFileList(false).size());
@@ -165,7 +165,7 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
}
Assert.assertFalse(TsFileResourceUtils.validateTsFileDataCorrectness(resource));
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0, true);
task.start();
Assert.assertEquals(0, tsFileManager.getTsFileList(true).size());
Assert.assertEquals(1, tsFileManager.getTsFileList(false).size());
@@ -197,7 +197,7 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
}
Assert.assertFalse(TsFileResourceUtils.validateTsFileDataCorrectness(resource));
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0, true);
task.start();
Assert.assertEquals(0, tsFileManager.getTsFileList(true).size());
Assert.assertEquals(1, tsFileManager.getTsFileList(false).size());
@@ -225,7 +225,7 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
}
Assert.assertFalse(TsFileResourceUtils.validateTsFileDataCorrectness(resource));
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0, true);
task.start();
Assert.assertEquals(0, tsFileManager.getTsFileList(true).size());
Assert.assertEquals(1, tsFileManager.getTsFileList(false).size());
@@ -253,7 +253,7 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
}
Assert.assertFalse(TsFileResourceUtils.validateTsFileDataCorrectness(resource));
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, resource.isSeq(), 0, true);
task.start();
Assert.assertEquals(0, tsFileManager.getTsFileList(true).size());
Assert.assertEquals(1, tsFileManager.getTsFileList(false).size());
@@ -522,7 +522,7 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
Assert.assertFalse(TsFileResourceUtils.validateTsFileResourcesHasNoOverlap(seqResources));
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, seqResource2, true, false, 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, seqResource2, true, false, 0, true);
Assert.assertTrue(task.start());
Assert.assertEquals(1, tsFileManager.getTsFileList(true).size());
Assert.assertEquals(1, tsFileManager.getTsFileList(false).size());
@@ -572,7 +572,7 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
Assert.assertFalse(TsFileResourceUtils.validateTsFileResourcesHasNoOverlap(seqResources));
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, seqResource2, true, false, 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, seqResource2, true, false, 0, true);
Assert.assertTrue(task.start());
Assert.assertEquals(1, tsFileManager.getTsFileList(true).size());
Assert.assertEquals(1, tsFileManager.getTsFileList(false).size());
@@ -631,9 +631,9 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
writer.endFile();
}
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, true, true, 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, true, true, 0, true);
Assert.assertTrue(task.getEstimatedMemoryCost() > 0);
- task = new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, true, false, 0);
+ task = new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, true, false, 0, true);
Assert.assertEquals(0, task.getEstimatedMemoryCost());
}
@@ -658,13 +658,13 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
writer.endFile();
}
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, true, true, 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, true, true, 0, true);
Assert.assertTrue(task.start());
TsFileResource target = tsFileManager.getTsFileList(false).get(0);
try (TsFileSequenceReader reader = new TsFileSequenceReader(target.getTsFilePath())) {
List<AlignedChunkMetadata> chunkMetadataList =
reader.getAlignedChunkMetadata(
- IDeviceID.Factory.DEFAULT_FACTORY.create("root.testsg.d1"));
+ IDeviceID.Factory.DEFAULT_FACTORY.create("root.testsg.d1"), true);
for (AlignedChunkMetadata alignedChunkMetadata : chunkMetadataList) {
ChunkMetadata timeChunkMetadata =
(ChunkMetadata) alignedChunkMetadata.getTimeChunkMetadata();
@@ -706,13 +706,13 @@ public class RepairUnsortedFileCompactionTest extends AbstractRepairDataTest {
writer.endFile();
}
RepairUnsortedFileCompactionTask task =
- new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, true, true, 0);
+ new RepairUnsortedFileCompactionTask(0, tsFileManager, resource, true, true, 0, true);
Assert.assertTrue(task.start());
TsFileResource target = tsFileManager.getTsFileList(false).get(0);
try (TsFileSequenceReader reader = new TsFileSequenceReader(target.getTsFilePath())) {
List<AlignedChunkMetadata> chunkMetadataList =
reader.getAlignedChunkMetadata(
- IDeviceID.Factory.DEFAULT_FACTORY.create("root.testsg.d1"));
+ IDeviceID.Factory.DEFAULT_FACTORY.create("root.testsg.d1"), true);
Assert.assertEquals(3, chunkMetadataList.size());
}
}
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionSelectorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionSelectorTest.java
index 0ae1dbf2cd0..58d8d5ed7f1 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionSelectorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionSelectorTest.java
@@ -28,6 +28,7 @@ import org.apache.iotdb.db.exception.StorageEngineException;
import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache;
import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactionTest;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.SettleCompactionTask;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.SettleSelectorImpl;
import org.apache.iotdb.db.storageengine.dataregion.modification.Deletion;
import org.apache.iotdb.db.storageengine.dataregion.modification.ModificationFile;
@@ -80,7 +81,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// inner task, continuous
// select first time
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(false, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ false, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(1, seqTasks.size());
@@ -143,7 +145,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// settle task, not continuous
// select first time
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(false, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ false, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
int num = 10;
for (int i = 0; i < 5; i++) {
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
@@ -188,7 +191,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// select first time
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(0, seqTasks.size());
@@ -221,7 +225,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// select first time, file 0 is all deleted, file 1 2 3 4 is not satisfied by heavy select
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(1, seqTasks.size());
Assert.assertEquals(1, seqTasks.get(0).getFullyDirtyFiles().size());
@@ -231,7 +236,9 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
Assert.assertEquals(4, tsFileManager.getTsFileList(true).size());
// select second time
- settleSelector = new SettleSelectorImpl(false, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ settleSelector =
+ new SettleSelectorImpl(
+ false, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(1, seqTasks.size());
Assert.assertEquals(0, seqTasks.get(0).getFullyDirtyFiles().size());
@@ -272,7 +279,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// select first time, none partial_deleted and all_deleted files
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(0, seqTasks.size());
@@ -341,7 +349,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// inner task, continuous
// select first time, none partial_deleted and all_deleted files
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(0, seqTasks.size());
@@ -408,7 +417,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
}
}
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(0, seqTasks.size());
@@ -502,7 +512,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
}
// compact all_deleted file and partial_deleted file 0 2
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(4, seqTasks.size());
Assert.assertEquals(1, seqTasks.get(0).getFullyDirtyFiles().size());
@@ -574,7 +585,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// compact all_deleted file and partial_deleted file 0
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(3, seqTasks.size());
Assert.assertEquals(3, seqTasks.get(0).getFullyDirtyFiles().size());
@@ -616,7 +628,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// inner task, continuous
// select first time
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(false, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ false, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(1, seqTasks.size());
@@ -680,7 +693,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// settle task, not continuous
// select first time
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(false, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ false, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
int num = 10;
for (int i = 0; i < 5; i++) {
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
@@ -725,7 +739,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// select first time
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(0, seqTasks.size());
@@ -758,7 +773,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// select first time, file 0 is all deleted, file 1 2 3 4 is not satisfied by heavy select
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(1, seqTasks.size());
Assert.assertEquals(1, seqTasks.get(0).getFullyDirtyFiles().size());
@@ -768,7 +784,9 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
Assert.assertEquals(4, tsFileManager.getTsFileList(true).size());
// select second time
- settleSelector = new SettleSelectorImpl(false, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ settleSelector =
+ new SettleSelectorImpl(
+ false, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(1, seqTasks.size());
Assert.assertEquals(0, seqTasks.get(0).getFullyDirtyFiles().size());
@@ -809,7 +827,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// select first time, none partial_deleted and all_deleted files
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(0, seqTasks.size());
@@ -878,7 +897,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// inner task, continuous
// select first time, none partial_deleted and all_deleted files
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(0, seqTasks.size());
@@ -945,7 +965,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
}
}
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(0, seqTasks.size());
@@ -1040,7 +1061,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
}
// compact all_deleted file and partial_deleted file 0 2
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(4, seqTasks.size());
Assert.assertEquals(1, seqTasks.get(0).getFullyDirtyFiles().size());
@@ -1113,7 +1135,8 @@ public class SettleCompactionSelectorTest extends AbstractCompactionTest {
// compact all_deleted file and partial_deleted file 0
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
Assert.assertEquals(3, seqTasks.size());
Assert.assertEquals(3, seqTasks.get(0).getFullyDirtyFiles().size());
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionTaskTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionTaskTest.java
index cbedc6d69e2..9d040b00bed 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionTaskTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionTaskTest.java
@@ -38,6 +38,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.ReadPointCompactionPerformer;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.InnerSpaceCompactionTask;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.SettleCompactionTask;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.impl.SettleSelectorImpl;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResourceStatus;
@@ -158,7 +159,8 @@ public class SettleCompactionTaskTest extends AbstractCompactionTest {
tsFileManager.addAll(unseqResources, false);
SettleSelectorImpl settleSelector =
- new SettleSelectorImpl(true, COMPACTION_TEST_SG, "0", 0, tsFileManager);
+ new SettleSelectorImpl(
+ true, COMPACTION_TEST_SG, "0", 0, tsFileManager, new CompactionScheduleContext());
List<SettleCompactionTask> seqTasks = settleSelector.selectSettleTask(seqResources);
List<SettleCompactionTask> unseqTasks = settleSelector.selectSettleTask(unseqResources);
Assert.assertEquals(1, seqTasks.size());
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/CompactionWithAllNullRowsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/CompactionWithAllNullRowsTest.java
new file mode 100644
index 00000000000..641933f70a5
--- /dev/null
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/tablemodel/CompactionWithAllNullRowsTest.java
@@ -0,0 +1,315 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.storageengine.dataregion.compaction.tablemodel;
+
+import org.apache.iotdb.commons.exception.IllegalPathException;
+import org.apache.iotdb.commons.exception.MetadataException;
+import org.apache.iotdb.commons.path.MeasurementPath;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.exception.StorageEngineException;
+import org.apache.iotdb.db.storageengine.buffer.BloomFilterCache;
+import org.apache.iotdb.db.storageengine.buffer.ChunkCache;
+import org.apache.iotdb.db.storageengine.buffer.TimeSeriesMetadataCache;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactionTest;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ICompactionPerformer;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.constant.InnerSeqCompactionPerformer;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.constant.InnerUnseqCompactionPerformer;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.FastCompactionPerformer;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.ReadChunkCompactionPerformer;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.ReadPointCompactionPerformer;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.InnerSpaceCompactionTask;
+import org.apache.iotdb.db.storageengine.dataregion.modification.Deletion;
+import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
+
+import org.apache.tsfile.exception.write.WriteProcessException;
+import org.apache.tsfile.file.metadata.IDeviceID;
+import org.apache.tsfile.file.metadata.enums.CompressionType;
+import org.apache.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.tsfile.read.common.TimeRange;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+
+@RunWith(Parameterized.class)
+public class CompactionWithAllNullRowsTest extends AbstractCompactionTest {
+
+ private final String performerType;
+ private String threadName;
+ private final int maxAlignedSeriesNumInOneBatch;
+ private int defaultMaxAlignedSeriesNumInOneBatch;
+
+ @Before
+ public void setUp()
+ throws IOException, WriteProcessException, MetadataException, InterruptedException {
+ this.threadName = Thread.currentThread().getName();
+ Thread.currentThread().setName("pool-1-IoTDB-Compaction-Worker-1");
+ this.defaultMaxAlignedSeriesNumInOneBatch =
+ IoTDBDescriptor.getInstance().getConfig().getCompactionMaxAlignedSeriesNumInOneBatch();
+ IoTDBDescriptor.getInstance()
+ .getConfig()
+ .setCompactionMaxAlignedSeriesNumInOneBatch(maxAlignedSeriesNumInOneBatch);
+ }
+
+ @After
+ public void tearDown() throws IOException, StorageEngineException {
+ ChunkCache.getInstance().clear();
+ TimeSeriesMetadataCache.getInstance().clear();
+ BloomFilterCache.getInstance().clear();
+ Thread.currentThread().setName(threadName);
+ IoTDBDescriptor.getInstance()
+ .getConfig()
+ .setCompactionMaxAlignedSeriesNumInOneBatch(defaultMaxAlignedSeriesNumInOneBatch);
+ }
+
+ @Parameterized.Parameters(name = "type={0} batch_size={1}")
+ public static Collection<Object[]> data() {
+ return Arrays.asList(
+ new Object[][] {
+ {"read_chunk", 10}, {"read_chunk", 2}, {"fast", 10}, {"fast", 2}, {"read_point", 10},
+ });
+ }
+
+ public CompactionWithAllNullRowsTest(String performerType, int maxAlignedSeriesNumInOneBatch) {
+ this.performerType = performerType;
+ this.maxAlignedSeriesNumInOneBatch = maxAlignedSeriesNumInOneBatch;
+ }
+
+ public ICompactionPerformer getPerformer() {
+ ICompactionPerformer performer;
+ if (performerType.equalsIgnoreCase(InnerSeqCompactionPerformer.READ_CHUNK.toString())) {
+ performer = new ReadChunkCompactionPerformer();
+ } else if (performerType.equalsIgnoreCase(InnerUnseqCompactionPerformer.FAST.toString())) {
+ performer = new FastCompactionPerformer(false);
+ } else {
+ performer = new ReadPointCompactionPerformer();
+ }
+ performer.setIgnoreAllNullRows(false);
+ return performer;
+ }
+
+ @Test
+ public void testCompactionWithAllNullRows1() throws IOException {
+ TsFileResource resource1 = createEmptyFileAndResource(true);
+ try (CompactionTableModelTestFileWriter writer =
+ new CompactionTableModelTestFileWriter(resource1)) {
+ writer.registerTableSchema("t1", Arrays.asList("id1", "id2"));
+ writer.startChunkGroup("t1", Arrays.asList("id_field1", "id_field2"));
+ writer.generateSimpleAlignedSeriesToCurrentDeviceWithNullValue(
+ Arrays.asList("s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9"),
+ new TimeRange[][][] {new TimeRange[][] {new TimeRange[] {new TimeRange(10, 12)}}},
+ TSEncoding.PLAIN,
+ CompressionType.LZ4,
+ Arrays.asList(true, true, true, true, true, true, true, true, true, true));
+ writer.endChunkGroup();
+ writer.endFile();
+ }
+ seqResources.add(resource1);
+ InnerSpaceCompactionTask task =
+ new InnerSpaceCompactionTask(0, tsFileManager, seqResources, true, getPerformer(), 0);
+ Assert.assertTrue(task.start());
+ TsFileResource target = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(10, target.getFileStartTime());
+ Assert.assertEquals(12, target.getFileEndTime());
+ InnerSpaceCompactionTask task2 =
+ new InnerSpaceCompactionTask(
+ 0, tsFileManager, tsFileManager.getTsFileList(true), true, getPerformer(), 0);
+ Assert.assertTrue(task2.start());
+ TsFileResource target2 = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(10, target2.getFileStartTime());
+ Assert.assertEquals(12, target2.getFileEndTime());
+ }
+
+ @Test
+ public void testCompactionWithAllNullRows2() throws IOException {
+ TsFileResource resource1 = createEmptyFileAndResource(true);
+ try (CompactionTableModelTestFileWriter writer =
+ new CompactionTableModelTestFileWriter(resource1)) {
+ writer.registerTableSchema("t1", Arrays.asList("id1", "id2"));
+ writer.startChunkGroup("t1", Arrays.asList("id_field1", "id_field2"));
+ writer.generateSimpleAlignedSeriesToCurrentDeviceWithNullValue(
+ Arrays.asList("s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9"),
+ new TimeRange[][][] {
+ new TimeRange[][] {new TimeRange[] {new TimeRange(1, 9), new TimeRange(10, 12)}}
+ },
+ TSEncoding.PLAIN,
+ CompressionType.LZ4,
+ Arrays.asList(true, true, true, true, true, true, true, true, true, true));
+
+ writer.endChunkGroup();
+ writer.endFile();
+ }
+ seqResources.add(resource1);
+ InnerSpaceCompactionTask task =
+ new InnerSpaceCompactionTask(0, tsFileManager, seqResources, true, getPerformer(), 0);
+ Assert.assertTrue(task.start());
+ TsFileResource target = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(1, target.getFileStartTime());
+ Assert.assertEquals(12, target.getFileEndTime());
+ InnerSpaceCompactionTask task2 =
+ new InnerSpaceCompactionTask(
+ 0, tsFileManager, tsFileManager.getTsFileList(true), true, getPerformer(), 0);
+ Assert.assertTrue(task2.start());
+ TsFileResource target2 = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(1, target2.getFileStartTime());
+ Assert.assertEquals(12, target2.getFileEndTime());
+ }
+
+ @Test
+ public void testCompactionWithAllNullRows3() throws IOException {
+ TsFileResource resource1 = createEmptyFileAndResource(true);
+ try (CompactionTableModelTestFileWriter writer =
+ new CompactionTableModelTestFileWriter(resource1)) {
+ writer.registerTableSchema("t1", Arrays.asList("id1", "id2"));
+ writer.startChunkGroup("t1", Arrays.asList("id_field1", "id_field2"));
+ writer.generateSimpleAlignedSeriesToCurrentDeviceWithNullValue(
+ Arrays.asList("s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9"),
+ new TimeRange[][] {new TimeRange[] {new TimeRange(10000, 19999)}},
+ TSEncoding.PLAIN,
+ CompressionType.LZ4,
+ Arrays.asList(true, true, true, true, true, true, true, true, true, true));
+
+ writer.endChunkGroup();
+ writer.endFile();
+ }
+ seqResources.add(resource1);
+ InnerSpaceCompactionTask task =
+ new InnerSpaceCompactionTask(0, tsFileManager, seqResources, true, getPerformer(), 0);
+ Assert.assertTrue(task.start());
+ TsFileResource target = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(10000, target.getFileStartTime());
+ Assert.assertEquals(19999, target.getFileEndTime());
+ InnerSpaceCompactionTask task2 =
+ new InnerSpaceCompactionTask(
+ 0, tsFileManager, tsFileManager.getTsFileList(true), true, getPerformer(), 0);
+ Assert.assertTrue(task2.start());
+ TsFileResource target2 = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(10000, target2.getFileStartTime());
+ Assert.assertEquals(19999, target2.getFileEndTime());
+ }
+
+ @Test
+ public void testCompactionWithAllNullRows4() throws IOException {
+ TsFileResource resource1 = createEmptyFileAndResource(true);
+ try (CompactionTableModelTestFileWriter writer =
+ new CompactionTableModelTestFileWriter(resource1)) {
+ writer.registerTableSchema("t1", Arrays.asList("id1", "id2"));
+ writer.startChunkGroup("t1", Arrays.asList("id_field1", "id_field2"));
+ writer.generateSimpleAlignedSeriesToCurrentDeviceWithNullValue(
+ Arrays.asList("s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9"),
+ new TimeRange[] {new TimeRange(100000, 199999)},
+ TSEncoding.PLAIN,
+ CompressionType.LZ4,
+ Arrays.asList(true, true, true, true, true, true, true, true, true, true));
+
+ writer.endChunkGroup();
+ writer.endFile();
+ }
+ seqResources.add(resource1);
+ InnerSpaceCompactionTask task =
+ new InnerSpaceCompactionTask(0, tsFileManager, seqResources, true, getPerformer(), 0);
+ Assert.assertTrue(task.start());
+ TsFileResource target = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(100000, target.getFileStartTime());
+ Assert.assertEquals(199999, target.getFileEndTime());
+ InnerSpaceCompactionTask task2 =
+ new InnerSpaceCompactionTask(
+ 0, tsFileManager, tsFileManager.getTsFileList(true), true, getPerformer(), 0);
+ Assert.assertTrue(task2.start());
+ TsFileResource target2 = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(100000, target2.getFileStartTime());
+ Assert.assertEquals(199999, target2.getFileEndTime());
+ }
+
+ @Test
+ @Ignore
+ public void testCompactionWithAllDeletion() throws IOException, IllegalPathException {
+ TsFileResource resource1 = createEmptyFileAndResource(true);
+ IDeviceID deviceID = null;
+ try (CompactionTableModelTestFileWriter writer =
+ new CompactionTableModelTestFileWriter(resource1)) {
+ writer.registerTableSchema("t1", Arrays.asList("id1", "id2"));
+ deviceID = writer.startChunkGroup("t1", Arrays.asList("id_field1", "id_field2"));
+ writer.generateSimpleAlignedSeriesToCurrentDeviceWithNullValue(
+ Arrays.asList("s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9"),
+ new TimeRange[][][] {new TimeRange[][] {new TimeRange[] {new TimeRange(10, 12)}}},
+ TSEncoding.PLAIN,
+ CompressionType.LZ4,
+ Arrays.asList(true, true, true, true, true, true, true, true, true, true));
+ writer.endChunkGroup();
+ writer.endFile();
+ }
+ resource1
+ .getModFile()
+ .write(new Deletion(new MeasurementPath(deviceID, ""), Long.MAX_VALUE, Long.MAX_VALUE));
+ resource1.getModFile().close();
+ seqResources.add(resource1);
+ InnerSpaceCompactionTask task =
+ new InnerSpaceCompactionTask(0, tsFileManager, seqResources, true, getPerformer(), 0);
+ Assert.assertTrue(task.start());
+ Assert.assertTrue(tsFileManager.getTsFileList(true).isEmpty());
+ }
+
+ @Test
+ public void testCompactionWithAllValueColumnDeletion() throws IOException, IllegalPathException {
+ TsFileResource resource1 = createEmptyFileAndResource(true);
+ IDeviceID deviceID = null;
+ try (CompactionTableModelTestFileWriter writer =
+ new CompactionTableModelTestFileWriter(resource1)) {
+ writer.registerTableSchema("t1", Arrays.asList("id1", "id2"));
+ deviceID = writer.startChunkGroup("t1", Arrays.asList("id_field1", "id_field2"));
+ writer.generateSimpleAlignedSeriesToCurrentDeviceWithNullValue(
+ Arrays.asList("s0", "s1", "s2", "s3"),
+ new TimeRange[][][] {new TimeRange[][] {new TimeRange[] {new TimeRange(10, 12)}}},
+ TSEncoding.PLAIN,
+ CompressionType.LZ4,
+ Arrays.asList(true, true, true, true));
+ writer.endChunkGroup();
+ writer.endFile();
+ }
+ resource1
+ .getModFile()
+ .write(new Deletion(new MeasurementPath(deviceID, "s0"), Long.MAX_VALUE, 11));
+ resource1
+ .getModFile()
+ .write(new Deletion(new MeasurementPath(deviceID, "s1"), Long.MAX_VALUE, 11));
+ resource1
+ .getModFile()
+ .write(new Deletion(new MeasurementPath(deviceID, "s2"), Long.MAX_VALUE, 11));
+ resource1
+ .getModFile()
+ .write(new Deletion(new MeasurementPath(deviceID, "s3"), Long.MAX_VALUE, 11));
+ resource1.getModFile().close();
+ seqResources.add(resource1);
+ InnerSpaceCompactionTask task =
+ new InnerSpaceCompactionTask(0, tsFileManager, seqResources, true, getPerformer(), 0);
+ Assert.assertTrue(task.start());
+ TsFileResource target = tsFileManager.getTsFileList(true).get(0);
+ Assert.assertEquals(10, target.getFileStartTime());
+ Assert.assertEquals(12, target.getFileEndTime());
+ }
+}
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/BatchCompactionUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/BatchCompactionUtilsTest.java
index 45e19a9a24d..5755964a436 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/BatchCompactionUtilsTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/BatchCompactionUtilsTest.java
@@ -23,9 +23,9 @@ import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.db.exception.StorageEngineException;
import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactionTest;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.AlignedSeriesBatchCompactionUtils;
-import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.BatchedCompactionAlignedPagePointReader;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.CompactChunkPlan;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.CompactPagePlan;
+import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.CompactionAlignedPageLazyLoadPointReader;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.FirstBatchCompactionAlignedChunkWriter;
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.batch.utils.FollowingBatchCompactionAlignedChunkWriter;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
@@ -108,7 +108,8 @@ public class BatchCompactionUtilsTest extends AbstractCompactionTest {
new TsFileSequenceReader(seqResource1.getTsFile().getAbsolutePath())) {
AlignedChunkMetadata alignedChunkMetadata =
reader
- .getAlignedChunkMetadata(IDeviceID.Factory.DEFAULT_FACTORY.create("root.testsg.d0"))
+ .getAlignedChunkMetadata(
+ IDeviceID.Factory.DEFAULT_FACTORY.create("root.testsg.d0"), true)
.get(0);
ChunkMetadata timeChunkMetadata = (ChunkMetadata) alignedChunkMetadata.getTimeChunkMetadata();
List<IChunkMetadata> valueChunkMetadataList =
@@ -126,9 +127,11 @@ public class BatchCompactionUtilsTest extends AbstractCompactionTest {
AlignedChunkReader alignedChunkReader = new AlignedChunkReader(timeChunk, valueChunks);
AlignedPageReader iPageReader =
(AlignedPageReader) alignedChunkReader.loadPageReaderList().get(0);
- BatchedCompactionAlignedPagePointReader batchCompactionPointReader =
- new BatchedCompactionAlignedPagePointReader(
- iPageReader.getTimePageReader(), iPageReader.getValuePageReaderList().subList(1, 2));
+ CompactionAlignedPageLazyLoadPointReader batchCompactionPointReader =
+ new CompactionAlignedPageLazyLoadPointReader(
+ iPageReader.getTimePageReader(),
+ iPageReader.getValuePageReaderList().subList(1, 2),
+ false);
int readPointNum = 0;
while (batchCompactionPointReader.hasNextTimeValuePair()) {
TimeValuePair timeValuePair = batchCompactionPointReader.nextTimeValuePair();
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/CompactionCheckerUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/CompactionCheckerUtils.java
index 7c9b4ccd6e1..13ee5d97246 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/CompactionCheckerUtils.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/CompactionCheckerUtils.java
@@ -526,7 +526,8 @@ public class CompactionCheckerUtils {
public static List<IFullPath> getAllPathsOfResources(List<TsFileResource> resources)
throws IOException, IllegalPathException {
Set<IFullPath> paths = new HashSet<>();
- try (MultiTsFileDeviceIterator deviceIterator = new MultiTsFileDeviceIterator(resources)) {
+ try (MultiTsFileDeviceIterator deviceIterator =
+ new MultiTsFileDeviceIterator(resources, false)) {
while (deviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> iDeviceIDBooleanPair = deviceIterator.nextDevice();
IDeviceID deviceID = iDeviceIDBooleanPair.getLeft();
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/MultiTsFileDeviceIteratorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/MultiTsFileDeviceIteratorTest.java
index d26b03964b7..b9d653efc84 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/MultiTsFileDeviceIteratorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/MultiTsFileDeviceIteratorTest.java
@@ -126,7 +126,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
List<String> measurementSet = new ArrayList<>(4000);
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(seqResources)) {
+ new MultiTsFileDeviceIterator(seqResources, false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceIsAlignedPair = multiTsFileDeviceIterator.nextDevice();
IDeviceID device = deviceIsAlignedPair.getLeft();
@@ -172,7 +172,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(seqResources, unseqResources)) {
+ new MultiTsFileDeviceIterator(seqResources, unseqResources, false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -203,7 +203,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(seqResources, unseqResources)) {
+ new MultiTsFileDeviceIterator(seqResources, unseqResources, false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -241,7 +241,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(seqResources, unseqResources)) {
+ new MultiTsFileDeviceIterator(seqResources, unseqResources, false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -280,7 +280,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(seqResources, unseqResources)) {
+ new MultiTsFileDeviceIterator(seqResources, unseqResources, false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -332,7 +332,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(seqResources, unseqResources)) {
+ new MultiTsFileDeviceIterator(seqResources, unseqResources, false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -384,7 +384,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(seqResources)) {
+ new MultiTsFileDeviceIterator(seqResources, false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -447,7 +447,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -526,7 +526,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -601,7 +601,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -681,7 +681,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -751,7 +751,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -830,7 +830,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -901,7 +901,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -990,7 +990,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -1061,7 +1061,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -1140,7 +1140,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -1211,7 +1211,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
int deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
@@ -1300,7 +1300,7 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest {
deviceNum = 0;
try (MultiTsFileDeviceIterator multiTsFileDeviceIterator =
- new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true))) {
+ new MultiTsFileDeviceIterator(tsFileManager.getTsFileList(true), false)) {
while (multiTsFileDeviceIterator.hasNextDevice()) {
Pair<IDeviceID, Boolean> deviceInfo = multiTsFileDeviceIterator.nextDevice();
Assert.assertEquals(deviceIds.get(deviceNum), deviceInfo.left);
diff --git a/pom.xml b/pom.xml
index 0e46b02a076..88a6e1007ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -166,7 +166,7 @@
<thrift.version>0.14.1</thrift.version>
<xz.version>1.9</xz.version>
<zstd-jni.version>1.5.6-3</zstd-jni.version>
- <tsfile.version>1.2.0-4467fa07-SNAPSHOT</tsfile.version>
+ <tsfile.version>1.2.0-240920-SNAPSHOT</tsfile.version>
</properties>
<!--
if we claim dependencies in dependencyManagement, then we do not claim