You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/03/08 12:10:49 UTC
[iotdb] branch master updated: [IOTDB-2680] Fix too many open files exception (#5177)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin 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 1584871 [IOTDB-2680] Fix too many open files exception (#5177)
1584871 is described below
commit 1584871a7cdca3b055f90ee43ffeb355eb8d8db3
Author: 周沛辰 <45...@users.noreply.github.com>
AuthorDate: Tue Mar 8 20:09:45 2022 +0800
[IOTDB-2680] Fix too many open files exception (#5177)
---
docs/UserGuide/Reference/Config-Manual.md | 15 +++-
docs/zh/UserGuide/Reference/Config-Manual.md | 13 +++-
.../db/integration/IoTDBNewTsFileCompactionIT.java | 6 +-
.../integration/IoTDBSizeTieredCompactionIT.java | 6 +-
.../resources/conf/iotdb-engine.properties | 12 ++-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 23 ++++--
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 11 ++-
.../db/engine/compaction/CompactionUtils.java | 19 ++---
.../selector/RewriteCompactionFileSelector.java | 7 +-
.../sizetiered/SizeTieredCompactionSelector.java | 2 +-
.../inner/utils/MultiTsFileDeviceIterator.java | 31 ++++++--
.../engine/compaction/CompactionSchedulerTest.java | 90 +++++++++++-----------
.../cross/RewriteCompactionFileSelectorTest.java | 21 +++++
.../inner/InnerCompactionSchedulerTest.java | 8 +-
.../compaction/utils/CompactionConfigRestorer.java | 6 +-
.../storagegroup/StorageGroupProcessorTest.java | 6 +-
16 files changed, 179 insertions(+), 97 deletions(-)
diff --git a/docs/UserGuide/Reference/Config-Manual.md b/docs/UserGuide/Reference/Config-Manual.md
index 21386f2..ebf91c1 100644
--- a/docs/UserGuide/Reference/Config-Manual.md
+++ b/docs/UserGuide/Reference/Config-Manual.md
@@ -841,15 +841,24 @@ The permission definitions are in ${IOTDB\_CONF}/conf/jmx.access.
|Default| 100 |
|Effective|After restart system|
-* max\_compaction\_candidate\_file\_num
+* max\_inner\_compaction\_candidate\_file\_num
-|Name| max\_compaction\_candidate\_file\_num |
+|Name| max\_inner\_compaction\_candidate\_file\_num |
|:---:|:---|
-|Description| The max num of files encounter in compaction |
+|Description| The max num of files encounter in inner space compaction |
|Type| Int32 |
|Default| 30 |
|Effective|After restart system|
+* max\_cross\_compaction\_file\_num
+
+|Name| max\_cross\_compaction\_candidate\_file\_num |
+|:---:|:---|
+|Description| The max num of files encounter in cross space compaction |
+|Type| Int32 |
+|Default| 1000 |
+|Effective|After restart system|
+
* cross\_compaction\_file\_selection\_time\_budget
|Name| cross\_compaction\_file\_selection\_time\_budget |
diff --git a/docs/zh/UserGuide/Reference/Config-Manual.md b/docs/zh/UserGuide/Reference/Config-Manual.md
index 5b4b5a9..a5e382c 100644
--- a/docs/zh/UserGuide/Reference/Config-Manual.md
+++ b/docs/zh/UserGuide/Reference/Config-Manual.md
@@ -880,15 +880,24 @@ Server,客户端的使用方式详见 [SQL 命令行终端(CLI)](https://i
|默认值| 100 |
|改后生效方式|重启服务生效|
-* max\_compaction\_candidate\_file\_num
+* max\_inner\_compaction\_candidate\_file\_num
-|名字| max\_compaction\_candidate\_file\_num |
+|名字| max\_inner\_compaction\_candidate\_file\_num |
|:---:|:---|
|描述| 空间内合并中一次合并最多参与的文件数 |
|类型| Int32 |
|默认值| 30|
|改后生效方式|重启服务生效|
+* max\_cross\_compaction\_candidate\_file\_num
+
+|名字| max\_cross\_compaction\_candidate\_file\_num |
+|:---:|:---|
+|描述| 跨空间合并中一次合并最多参与的文件数 |
+|类型| Int32 |
+|默认值| 1000|
+|改后生效方式|重启服务生效|
+
* cross\_compaction\_file\_selection\_time\_budget
|名字| cross\_compaction\_file\_selection\_time\_budget |
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBNewTsFileCompactionIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBNewTsFileCompactionIT.java
index cfe7b40..59734ed 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBNewTsFileCompactionIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBNewTsFileCompactionIT.java
@@ -64,9 +64,9 @@ public class IoTDBNewTsFileCompactionIT {
storageGroupPath = new PartialPath("root.newTsFileCompaction");
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(1);
originCompactionFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
originSeqTsFileSize = IoTDBDescriptor.getInstance().getConfig().getSeqTsFileSize();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
IoTDBDescriptor.getInstance().getConfig().setSeqTsFileSize(1);
EnvironmentUtils.envSetUp();
Class.forName(Config.JDBC_DRIVER_NAME);
@@ -85,7 +85,7 @@ public class IoTDBNewTsFileCompactionIT {
EnvironmentUtils.cleanEnv();
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(originCompactionFileNum);
+ .setMaxInnerCompactionCandidateFileNum(originCompactionFileNum);
TSFileDescriptor.getInstance()
.getConfig()
.setMaxNumberOfPointsInPage(preMaxNumberOfPointsInPage);
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSizeTieredCompactionIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSizeTieredCompactionIT.java
index f00b94c..9e604e7 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSizeTieredCompactionIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSizeTieredCompactionIT.java
@@ -1016,8 +1016,8 @@ public class IoTDBSizeTieredCompactionIT {
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(2);
IoTDBDescriptor.getInstance().getConfig().setTargetCompactionFileSize(600);
int originCandidateNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
CompactionPriority compactionPriority =
IoTDBDescriptor.getInstance().getConfig().getCompactionPriority();
IoTDBDescriptor.getInstance().getConfig().setCompactionPriority(CompactionPriority.INNER_CROSS);
@@ -1093,7 +1093,7 @@ public class IoTDBSizeTieredCompactionIT {
IoTDBDescriptor.getInstance().getConfig().setCompactionPriority(compactionPriority);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(originCandidateNum);
+ .setMaxInnerCompactionCandidateFileNum(originCandidateNum);
}
}
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index 8f56a16..00180ee 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -423,11 +423,11 @@ timestamp_precision=ms
# Datatype: boolean
# enable_cross_space_compaction=true
-# the strategy of inner space compaction task
+# the strategy of cross space compaction task
# Options: rewrite_compaction
# cross_compaction_strategy=rewrite_compaction
-# the strategy of cross space compaction task
+# the strategy of inner space compaction task
# Options: size_tiered_compaction
# inner_compaction_strategy=size_tiered_compaction
@@ -457,9 +457,13 @@ timestamp_precision=ms
# Datatype: long
# chunk_point_num_lower_bound_in_compaction=100
-# The max file when selecting compaction candidate file
+# The max file when selecting inner space compaction candidate files
+# Datatype: int
+# max_inner_compaction_candidate_file_num=30
+
+# The max file when selecting cross space compaction candidate files
# Datatype: int
-# max_compaction_candidate_file_num=30
+# max_cross_compaction_candidate_file_num=1000
# If one merge file selection runs for more than this time, it will be ended and its current
# selection will be used as final selection.
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index df0f04d..bc99cc6 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -414,8 +414,11 @@ public class IoTDBConfig {
*/
private long compactionAcquireWriteLockTimeout = 60_000L;
- /** The max candidate file num in compaction */
- private int maxCompactionCandidateFileNum = 30;
+ /** The max candidate file num in inner space compaction */
+ private int maxInnerCompactionCandidateFileNum = 30;
+
+ /** The max candidate file num in cross space compaction */
+ private int maxCrossCompactionCandidateFileNum = 1000;
/** The interval of compaction task schedulation in each virtual storage group. The unit is ms. */
private long compactionScheduleIntervalInMs = 60_000L;
@@ -2470,12 +2473,20 @@ public class IoTDBConfig {
this.compactionScheduleIntervalInMs = compactionScheduleIntervalInMs;
}
- public int getMaxCompactionCandidateFileNum() {
- return maxCompactionCandidateFileNum;
+ public int getMaxInnerCompactionCandidateFileNum() {
+ return maxInnerCompactionCandidateFileNum;
+ }
+
+ public void setMaxInnerCompactionCandidateFileNum(int maxInnerCompactionCandidateFileNum) {
+ this.maxInnerCompactionCandidateFileNum = maxInnerCompactionCandidateFileNum;
+ }
+
+ public int getMaxCrossCompactionCandidateFileNum() {
+ return maxCrossCompactionCandidateFileNum;
}
- public void setMaxCompactionCandidateFileNum(int maxCompactionCandidateFileNum) {
- this.maxCompactionCandidateFileNum = maxCompactionCandidateFileNum;
+ public void setMaxCrossCompactionCandidateFileNum(int maxCrossCompactionCandidateFileNum) {
+ this.maxCrossCompactionCandidateFileNum = maxCrossCompactionCandidateFileNum;
}
public long getCompactionSubmissionIntervalInMs() {
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 0d5cb9e..cc59dce 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -523,11 +523,16 @@ public class IoTDBDescriptor {
properties.getProperty(
"chunk_size_lower_bound_in_compaction",
Long.toString(conf.getChunkSizeLowerBoundInCompaction()))));
- conf.setMaxCompactionCandidateFileNum(
+ conf.setMaxInnerCompactionCandidateFileNum(
Integer.parseInt(
properties.getProperty(
- "max_compaction_candidate_file_num",
- Integer.toString(conf.getMaxCompactionCandidateFileNum()))));
+ "max_inner_compaction_candidate_file_num",
+ Integer.toString(conf.getMaxInnerCompactionCandidateFileNum()))));
+ conf.setMaxCrossCompactionCandidateFileNum(
+ Integer.parseInt(
+ properties.getProperty(
+ "max_cross_compaction_candidate_file_num",
+ Integer.toString(conf.getMaxCrossCompactionCandidateFileNum()))));
conf.setCompactionWriteThroughputMbPerSec(
Integer.parseInt(
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java
index 9485f1e..906ead9 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java
@@ -57,7 +57,6 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -85,12 +84,11 @@ public class CompactionUtils {
.getQueryFileManager()
.addUsedFilesForQuery(queryId, queryDataSource);
- List<TsFileResource> allResources = new ArrayList<>();
- allResources.addAll(seqFileResources);
- allResources.addAll(unseqFileResources);
try (AbstractCompactionWriter compactionWriter =
- getCompactionWriter(seqFileResources, unseqFileResources, targetFileResources);
- MultiTsFileDeviceIterator deviceIterator = new MultiTsFileDeviceIterator(allResources)) {
+ getCompactionWriter(seqFileResources, unseqFileResources, targetFileResources)) {
+ // Do not close device iterator, because tsfile reader is managed by FileReaderManager.
+ MultiTsFileDeviceIterator deviceIterator =
+ new MultiTsFileDeviceIterator(seqFileResources, unseqFileResources);
while (deviceIterator.hasNextDevice()) {
checkThreadInterrupted(targetFileResources);
Pair<String, Boolean> deviceInfo = deviceIterator.nextDevice();
@@ -121,9 +119,9 @@ public class CompactionUtils {
QueryContext queryContext,
QueryDataSource queryDataSource)
throws IOException, MetadataException {
- MultiTsFileDeviceIterator.AlignedMeasurmentIterator alignedMeasurmentIterator =
+ MultiTsFileDeviceIterator.AlignedMeasurementIterator alignedMeasurementIterator =
deviceIterator.iterateAlignedSeries(device);
- List<String> allMeasurements = alignedMeasurmentIterator.getAllMeasurements();
+ Set<String> allMeasurements = alignedMeasurementIterator.getAllMeasurements();
List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
for (String measurement : allMeasurements) {
// TODO: use IDTable
@@ -146,7 +144,7 @@ public class CompactionUtils {
device,
existedMeasurements,
measurementSchemas,
- new HashSet<>(existedMeasurements),
+ allMeasurements,
queryContext,
queryDataSource,
true);
@@ -172,7 +170,6 @@ public class CompactionUtils {
MultiTsFileDeviceIterator.MeasurementIterator measurementIterator =
deviceIterator.iterateNotAlignedSeries(device, false);
Set<String> allMeasurements = measurementIterator.getAllMeasurements();
- Set<String> allMeasurementSet = new HashSet<>(allMeasurements);
for (String measurement : allMeasurements) {
List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
try {
@@ -188,7 +185,7 @@ public class CompactionUtils {
device,
Collections.singletonList(measurement),
measurementSchemas,
- allMeasurementSet,
+ allMeasurements,
queryContext,
queryDataSource,
false);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/selector/RewriteCompactionFileSelector.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/selector/RewriteCompactionFileSelector.java
index 8fd8838..858293f 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/selector/RewriteCompactionFileSelector.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/selector/RewriteCompactionFileSelector.java
@@ -51,6 +51,7 @@ public class RewriteCompactionFileSelector implements ICrossSpaceMergeFileSelect
long totalCost;
private long memoryBudget;
private long maxSeqFileCost;
+ private int maxCrossCompactionFileNum;
// the number of timeseries being queried at the same time
int concurrentMergeNum = 1;
@@ -72,6 +73,8 @@ public class RewriteCompactionFileSelector implements ICrossSpaceMergeFileSelect
public RewriteCompactionFileSelector(CrossSpaceCompactionResource resource, long memoryBudget) {
this.resource = resource;
this.memoryBudget = memoryBudget;
+ this.maxCrossCompactionFileNum =
+ IoTDBDescriptor.getInstance().getConfig().getMaxCrossCompactionCandidateFileNum();
}
/**
@@ -195,7 +198,9 @@ public class RewriteCompactionFileSelector implements ICrossSpaceMergeFileSelect
}
private boolean updateSelectedFiles(long newCost, TsFileResource unseqFile) {
- if (totalCost + newCost < memoryBudget) {
+ if (seqSelectedNum + selectedUnseqFiles.size() + 1 + tmpSelectedSeqFiles.size()
+ <= maxCrossCompactionFileNum
+ && totalCost + newCost < memoryBudget) {
selectedUnseqFiles.add(unseqFile);
maxSeqFileCost = tempMaxSeqFileCost;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
index 7a8ea62..bed2abb 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
@@ -138,7 +138,7 @@ public class SizeTieredCompactionSelector extends AbstractInnerSpaceCompactionSe
selectedFileSize);
// if the file size or file num reach threshold
if (selectedFileSize >= targetCompactionFileSize
- || selectedFileList.size() >= config.getMaxCompactionCandidateFileNum()) {
+ || selectedFileList.size() >= config.getMaxInnerCompactionCandidateFileNum()) {
// submit the task
if (selectedFileList.size() > 1) {
taskPriorityQueue.add(new Pair<>(new ArrayList<>(selectedFileList), selectedFileSize));
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
index b137baa..cb76dfd 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.db.engine.modification.ModificationFile;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
import org.apache.iotdb.db.exception.metadata.IllegalPathException;
import org.apache.iotdb.db.metadata.path.PartialPath;
+import org.apache.iotdb.db.query.control.FileReaderManager;
import org.apache.iotdb.db.utils.QueryUtils;
import org.apache.iotdb.tsfile.file.metadata.AlignedChunkMetadata;
import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
@@ -53,6 +54,7 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
private Map<TsFileResource, List<Modification>> modificationCache = new HashMap<>();
private Pair<String, Boolean> currentDevice = null;
+ /** Used for inner space compaction. */
public MultiTsFileDeviceIterator(List<TsFileResource> tsFileResources) throws IOException {
this.tsFileResources = new ArrayList<>(tsFileResources);
Collections.sort(this.tsFileResources, TsFileResource::compareFileName);
@@ -72,6 +74,23 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
}
}
+ /** Used for cross space compaction. */
+ public MultiTsFileDeviceIterator(
+ List<TsFileResource> seqResources, List<TsFileResource> unseqResources) throws IOException {
+ for (TsFileResource tsFileResource : seqResources) {
+ TsFileSequenceReader reader =
+ FileReaderManager.getInstance().get(tsFileResource.getTsFilePath(), true);
+ readerMap.put(tsFileResource, reader);
+ deviceIteratorMap.put(tsFileResource, reader.getAllDevicesIteratorWithIsAligned());
+ }
+ for (TsFileResource tsFileResource : unseqResources) {
+ TsFileSequenceReader reader =
+ FileReaderManager.getInstance().get(tsFileResource.getTsFilePath(), true);
+ readerMap.put(tsFileResource, reader);
+ deviceIteratorMap.put(tsFileResource, reader.getAllDevicesIteratorWithIsAligned());
+ }
+ }
+
public boolean hasNextDevice() {
boolean hasNext = false;
for (TsFileDeviceIterator iterator : deviceIteratorMap.values()) {
@@ -124,8 +143,8 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
return new MeasurementIterator(readerMap, device, derserializeTimeseriesMetadata);
}
- public AlignedMeasurmentIterator iterateAlignedSeries(String device) {
- return new AlignedMeasurmentIterator(device, new ArrayList<>(readerMap.values()));
+ public AlignedMeasurementIterator iterateAlignedSeries(String device) {
+ return new AlignedMeasurementIterator(device, new ArrayList<>(readerMap.values()));
}
/**
@@ -211,22 +230,22 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
}
}
- public class AlignedMeasurmentIterator {
+ public class AlignedMeasurementIterator {
private List<TsFileSequenceReader> sequenceReaders;
private String device;
- private AlignedMeasurmentIterator(String device, List<TsFileSequenceReader> sequenceReaders) {
+ private AlignedMeasurementIterator(String device, List<TsFileSequenceReader> sequenceReaders) {
this.device = device;
this.sequenceReaders = sequenceReaders;
}
- public List<String> getAllMeasurements() throws IOException {
+ public Set<String> getAllMeasurements() throws IOException {
Map<String, TimeseriesMetadata> deviceMeasurementsMap = new ConcurrentHashMap<>();
for (TsFileSequenceReader reader : sequenceReaders) {
deviceMeasurementsMap.putAll(reader.readDeviceMetadata(device));
}
deviceMeasurementsMap.remove("");
- return new ArrayList<>(deviceMeasurementsMap.keySet());
+ return deviceMeasurementsMap.keySet();
}
}
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionSchedulerTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionSchedulerTest.java
index 6018afa..3ae623e 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionSchedulerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionSchedulerTest.java
@@ -147,8 +147,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(100);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(100);
IoTDBDescriptor.getInstance()
.getConfig()
.setTargetCompactionFileSize(2L * 1024L * 1024L * 1024L);
@@ -260,7 +260,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
@@ -282,8 +282,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(100);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(100);
IoTDBDescriptor.getInstance()
.getConfig()
.setCrossCompactionMemoryBudget(2 * 1024 * 1024L * 1024L);
@@ -386,7 +386,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
@@ -407,8 +407,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(100);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(100);
String sgName = COMPACTION_TEST_SG + "test3";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -494,7 +494,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
@@ -515,8 +515,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(100);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(100);
IoTDBDescriptor.getInstance()
.getConfig()
.setTargetCompactionFileSize(2L * 1024L * 1024L * 1024L);
@@ -592,7 +592,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
/**
@@ -613,8 +613,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(1);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(100);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(100);
String sgName = COMPACTION_TEST_SG + "test5";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -718,7 +718,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
@@ -740,8 +740,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(1);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(100);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(100);
String sgName = COMPACTION_TEST_SG + "test6";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -837,7 +837,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
/**
@@ -857,8 +857,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(1);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(100);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(100);
String sgName = COMPACTION_TEST_SG + "test7";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -950,7 +950,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
/**
@@ -970,8 +970,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(1);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(100);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(100);
String sgName = COMPACTION_TEST_SG + "test8";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -1049,7 +1049,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
/**
@@ -1069,8 +1069,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
String sgName = COMPACTION_TEST_SG + "test9";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -1161,7 +1161,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
/**
@@ -1184,8 +1184,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
String sgName = COMPACTION_TEST_SG + "test10";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -1280,7 +1280,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
IoTDBDescriptor.getInstance()
.getConfig()
.setEnableCrossSpaceCompaction(prevEnableCrossCompaction);
@@ -1303,8 +1303,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
String sgName = COMPACTION_TEST_SG + "test11";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -1398,7 +1398,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
@@ -1419,8 +1419,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
String sgName = COMPACTION_TEST_SG + "test12";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -1517,7 +1517,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
@@ -1538,8 +1538,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(1);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
String sgName = COMPACTION_TEST_SG + "test13";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -1639,7 +1639,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
/**
@@ -1659,8 +1659,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(1);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
String sgName = COMPACTION_TEST_SG + "test14";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -1768,7 +1768,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
/**
@@ -1788,8 +1788,8 @@ public class CompactionSchedulerTest {
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(1);
int prevMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(2);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(2);
String sgName = COMPACTION_TEST_SG + "test16";
try {
IoTDB.metaManager.setStorageGroup(new PartialPath(sgName));
@@ -1885,7 +1885,7 @@ public class CompactionSchedulerTest {
.setConcurrentCompactionThread(prevCompactionConcurrentThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(prevMaxCompactionCandidateFileNum);
}
}
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
index 7af8363..9ccf5aa 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
@@ -869,4 +869,25 @@ public class RewriteCompactionFileSelectorTest extends MergeTest {
Assert.assertEquals(2, result[0].size());
Assert.assertEquals(2, result[1].size());
}
+
+ @Test
+ public void testMaxFileSelection() throws MergeException, IOException {
+ int oldMaxCrossCompactionCandidateFileNum =
+ IoTDBDescriptor.getInstance().getConfig().getMaxCrossCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxCrossCompactionCandidateFileNum(5);
+ CrossSpaceCompactionResource resource =
+ new CrossSpaceCompactionResource(seqResources, unseqResources);
+ ICrossSpaceMergeFileSelector mergeFileSelector =
+ new RewriteCompactionFileSelector(resource, Long.MAX_VALUE);
+ List[] result = mergeFileSelector.select();
+ assertEquals(2, result.length);
+ List<TsFileResource> seqSelected = result[0];
+ List<TsFileResource> unseqSelected = result[1];
+ assertEquals(2, seqSelected.size());
+ assertEquals(2, unseqSelected.size());
+ resource.clear();
+ IoTDBDescriptor.getInstance()
+ .getConfig()
+ .setMaxCrossCompactionCandidateFileNum(oldMaxCrossCompactionCandidateFileNum);
+ }
}
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionSchedulerTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionSchedulerTest.java
index ffa05b2..52ab698 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionSchedulerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionSchedulerTest.java
@@ -47,7 +47,7 @@ public class InnerCompactionSchedulerTest extends AbstractCompactionTest {
int oldConcurrentCompactionThread =
IoTDBDescriptor.getInstance().getConfig().getConcurrentCompactionThread();
int oldMaxCompactionCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
@Before
public void setUp() throws IOException, WriteProcessException, MetadataException {
@@ -72,7 +72,7 @@ public class InnerCompactionSchedulerTest extends AbstractCompactionTest {
.setConcurrentCompactionThread(oldConcurrentCompactionThread);
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(oldMaxCompactionCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(oldMaxCompactionCandidateFileNum);
super.tearDown();
}
@@ -81,7 +81,7 @@ public class InnerCompactionSchedulerTest extends AbstractCompactionTest {
IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(true);
IoTDBDescriptor.getInstance().getConfig().setEnableUnseqSpaceCompaction(true);
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(4);
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(4);
IoTDBDescriptor.getInstance().getConfig().setTargetCompactionFileSize(1000000);
createFiles(2, 2, 3, 100, 0, 0, 50, 50, false, true);
registerTimeseriesInMManger(2, 3, false);
@@ -106,7 +106,7 @@ public class InnerCompactionSchedulerTest extends AbstractCompactionTest {
@Test
public void testFileSelector2() throws IOException, MetadataException, WriteProcessException {
IoTDBDescriptor.getInstance().getConfig().setConcurrentCompactionThread(50);
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(50);
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(50);
TsFileResourceList tsFileResources = new TsFileResourceList();
createFiles(2, 2, 3, 100, 0, 0, 50, 50, false, true);
createFiles(2, 3, 5, 50, 250, 250, 50, 50, false, true);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionConfigRestorer.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionConfigRestorer.java
index a545624..5fe1d2e 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionConfigRestorer.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionConfigRestorer.java
@@ -37,7 +37,8 @@ public class CompactionConfigRestorer {
private long targetChunkPointNum = 100000L;
private long chunkSizeLowerBoundInCompaction = 128L;
private long chunkPointNumLowerBoundInCompaction = 100L;
- private int maxCompactionCandidateFileNum = 30;
+ private int maxInnerCompactionCandidateFileNum = 30;
+ private int maxCrossCompactionCandidateFileNum = 1000;
private int concurrentCompactionThread = 10;
private long compactionScheduleIntervalInMs = 60000L;
private long compactionSubmissionIntervalInMs = 60000L;
@@ -58,7 +59,8 @@ public class CompactionConfigRestorer {
config.setTargetChunkPointNum(targetChunkPointNum);
config.setChunkSizeLowerBoundInCompaction(chunkSizeLowerBoundInCompaction);
config.setChunkPointNumLowerBoundInCompaction(chunkPointNumLowerBoundInCompaction);
- config.setMaxCompactionCandidateFileNum(maxCompactionCandidateFileNum);
+ config.setMaxInnerCompactionCandidateFileNum(maxInnerCompactionCandidateFileNum);
+ config.setMaxCrossCompactionCandidateFileNum(maxCrossCompactionCandidateFileNum);
config.setConcurrentCompactionThread(concurrentCompactionThread);
config.setCompactionScheduleIntervalInMs(compactionScheduleIntervalInMs);
config.setCompactionSubmissionIntervalInMs(compactionSubmissionIntervalInMs);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
index f18d81c..7249cf2 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
@@ -637,8 +637,8 @@ public class StorageGroupProcessorTest {
throws WriteProcessException, QueryProcessException, IllegalPathException,
TriggerExecutionException {
int originCandidateFileNum =
- IoTDBDescriptor.getInstance().getConfig().getMaxCompactionCandidateFileNum();
- IoTDBDescriptor.getInstance().getConfig().setMaxCompactionCandidateFileNum(9);
+ IoTDBDescriptor.getInstance().getConfig().getMaxInnerCompactionCandidateFileNum();
+ IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(9);
boolean originEnableSeqSpaceCompaction =
IoTDBDescriptor.getInstance().getConfig().isEnableSeqSpaceCompaction();
boolean originEnableUnseqSpaceCompaction =
@@ -696,7 +696,7 @@ public class StorageGroupProcessorTest {
}
IoTDBDescriptor.getInstance()
.getConfig()
- .setMaxCompactionCandidateFileNum(originCandidateFileNum);
+ .setMaxInnerCompactionCandidateFileNum(originCandidateFileNum);
IoTDBDescriptor.getInstance()
.getConfig()
.setEnableSeqSpaceCompaction(originEnableSeqSpaceCompaction);