This is an automated email from the ASF dual-hosted git repository.
haonan 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 2da2255c75e Fix UT testLargeFileInLowerLevel of
CompactionSchedulerTestWithFastCompactionPerformer (#11735)
2da2255c75e is described below
commit 2da2255c75e1bd66945ac6f203da103a562c6160
Author: shuwenwei <[email protected]>
AuthorDate: Mon Dec 18 15:14:42 2023 +0800
Fix UT testLargeFileInLowerLevel of
CompactionSchedulerTestWithFastCompactionPerformer (#11735)
---
.../storageengine/dataregion/DataRegionTest.java | 5 ++++-
.../compaction/CompactionSchedulerTest.java | 3 ++-
.../CompactionSchedulerWithFastPerformerTest.java | 24 ++++++++++++++++++++--
3 files changed, 28 insertions(+), 4 deletions(-)
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java
index 7f8b53c5bd8..739554b0cd1 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java
@@ -900,6 +900,8 @@ public class DataRegionTest {
IoTDBDescriptor.getInstance().getConfig().isEnableUnseqSpaceCompaction();
IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(true);
IoTDBDescriptor.getInstance().getConfig().setEnableUnseqSpaceCompaction(true);
+ long finishedCompactionTaskNumWhenTestStart =
+ CompactionTaskManager.getInstance().getFinishedTaskNum();
for (int j = 21; j <= 30; j++) {
TSRecord record = new TSRecord(j, deviceId);
record.addTuple(DataPoint.getDataPoint(TSDataType.INT32, measurementId,
String.valueOf(j)));
@@ -933,7 +935,8 @@ public class DataRegionTest {
Assert.fail();
break;
}
- } while (CompactionTaskManager.getInstance().getExecutingTaskCount() > 0);
+ } while (CompactionTaskManager.getInstance().getFinishedTaskNum()
+ == finishedCompactionTaskNumWhenTestStart);
QueryDataSource queryDataSource =
dataRegion.query(
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionSchedulerTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionSchedulerTest.java
index dd2d9651b61..38c6ed49580 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionSchedulerTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionSchedulerTest.java
@@ -1809,6 +1809,7 @@ public class CompactionSchedulerTest {
canMerge = true;
break;
}
+ previousFileLevel = currentFileLevel;
}
tsFileManager.readUnlock();
if (!canMerge) {
@@ -1816,7 +1817,7 @@ public class CompactionSchedulerTest {
}
Thread.sleep(100);
sleepTime += 100;
- if (sleepTime >= 200_000) {
+ if (sleepTime >= 20_000) {
fail();
}
}
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionSchedulerWithFastPerformerTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionSchedulerWithFastPerformerTest.java
index 5a7071c425c..653c225fc72 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionSchedulerWithFastPerformerTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionSchedulerWithFastPerformerTest.java
@@ -37,6 +37,7 @@ import
org.apache.iotdb.db.storageengine.dataregion.compaction.utils.CompactionC
import
org.apache.iotdb.db.storageengine.dataregion.compaction.utils.CompactionFileGeneratorUtils;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
+import
org.apache.iotdb.db.storageengine.dataregion.tsfile.generator.TsFileNameGenerator;
import org.apache.iotdb.db.storageengine.rescon.memory.SystemInfo;
import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.db.utils.constant.TestConstant;
@@ -1789,8 +1790,28 @@ public class CompactionSchedulerWithFastPerformerTest {
CompactionScheduler.scheduleCompaction(tsFileManager, 0);
Thread.sleep(100);
long sleepTime = 0;
- while (tsFileManager.getTsFileList(true).size() > 3) {
+ while (tsFileManager.getTsFileList(true).size() >= 2) {
CompactionScheduler.scheduleCompaction(tsFileManager, 0);
+ tsFileManager.readLock();
+ List<TsFileResource> resources = tsFileManager.getTsFileList(true);
+ int previousFileLevel =
+
TsFileNameGenerator.getTsFileName(resources.get(0).getTsFile().getName())
+ .getInnerCompactionCnt();
+ boolean canMerge = false;
+ for (int i = 1; i < resources.size(); i++) {
+ int currentFileLevel =
+
TsFileNameGenerator.getTsFileName(resources.get(i).getTsFile().getName())
+ .getInnerCompactionCnt();
+ if (currentFileLevel == previousFileLevel) {
+ canMerge = true;
+ break;
+ }
+ previousFileLevel = currentFileLevel;
+ }
+ tsFileManager.readUnlock();
+ if (!canMerge) {
+ break;
+ }
Thread.sleep(100);
sleepTime += 100;
if (sleepTime >= 20_000) {
@@ -1800,7 +1821,6 @@ public class CompactionSchedulerWithFastPerformerTest {
stopCompactionTaskManager();
tsFileManager.setAllowCompaction(false);
- assertEquals(3, tsFileManager.getTsFileList(true).size());
} finally {
IoTDBDescriptor.getInstance()
.getConfig()