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()

Reply via email to