This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch fix_last_flush_time_map_test_13 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit bdead38a641a7e2d1206b694a30f91ad2de32adf Author: Haonan <[email protected]> AuthorDate: Wed Nov 27 16:22:22 2024 +0800 Fix flaky LastFlushTimeMapTest (#14225) --- .../dataregion/memtable/TsFileProcessor.java | 1 + .../storageengine/dataregion/DataRegionTest.java | 30 ++-------------------- .../dataregion/LastFlushTimeMapTest.java | 13 +--------- 3 files changed, 4 insertions(+), 40 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java index 477ae74da4b..e99a1d14fca 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java @@ -1170,6 +1170,7 @@ public class TsFileProcessor { * TODO if the flushing thread is too fast, the tmpMemTable.wait() may never wakeup Tips: I am * trying to solve this issue by checking whether the table exist before wait() */ + @TestOnly public void syncFlush() throws IOException { IMemTable tmpMemTable; flushQueryLock.writeLock().lock(); 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 7361f940b48..e7fa54e0b65 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 @@ -178,10 +178,7 @@ public class DataRegionTest { record.addTuple(DataPoint.getDataPoint(TSDataType.INT32, measurementId, String.valueOf(j))); dataRegion.insert(buildInsertRowNodeByTSRecord(record)); } - - for (TsFileProcessor tsfileProcessor : dataRegion.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } + dataRegion.syncCloseWorkingTsFileProcessors(false); for (int j = 11; j <= 20; j++) { record = new TSRecord(j, deviceId); @@ -655,10 +652,6 @@ public class DataRegionTest { dataRegion.syncCloseAllWorkingTsFileProcessors(); } - for (TsFileProcessor tsfileProcessor : dataRegion.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } - QueryDataSource queryDataSource = dataRegion.query( Collections.singletonList(new PartialPath(deviceId, measurementId)), @@ -744,10 +737,6 @@ public class DataRegionTest { dataRegion.insertTablet(insertTabletNode2); dataRegion.syncCloseAllWorkingTsFileProcessors(); - for (TsFileProcessor tsfileProcessor : dataRegion.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } - QueryDataSource queryDataSource = dataRegion.query( Collections.singletonList(new PartialPath(deviceId, measurementId)), @@ -832,10 +821,6 @@ public class DataRegionTest { dataRegion.insertTablet(insertTabletNode2); dataRegion.syncCloseAllWorkingTsFileProcessors(); - for (TsFileProcessor tsfileProcessor : dataRegion.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } - QueryDataSource queryDataSource = dataRegion.query( Collections.singletonList(new PartialPath(deviceId, measurementId)), @@ -920,10 +905,6 @@ public class DataRegionTest { dataRegion.insertTablet(insertTabletNode2); dataRegion.syncCloseAllWorkingTsFileProcessors(); - for (TsFileProcessor tsfileProcessor : dataRegion.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } - QueryDataSource queryDataSource = dataRegion.query( Collections.singletonList(new PartialPath(deviceId, measurementId)), @@ -999,11 +980,6 @@ public class DataRegionTest { dataRegion1.syncCloseAllWorkingTsFileProcessors(); } dataRegion1.syncCloseAllWorkingTsFileProcessors(); - - for (TsFileProcessor tsfileProcessor : dataRegion1.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } - QueryDataSource queryDataSource = dataRegion1.query( Collections.singletonList(new PartialPath("root.ln22", measurementId)), @@ -1551,9 +1527,7 @@ public class DataRegionTest { dataRegion.insert(buildInsertRowNodeByTSRecord(record)); } - for (TsFileProcessor processor : dataRegion.getWorkSequenceTsFileProcessors()) { - processor.syncFlush(); - } + dataRegion.syncCloseWorkingTsFileProcessors(true); TsFileResource tsFileResourceUnSeq = dataRegion.getTsFileManager().getTsFileList(false).get(0); Assert.assertTrue(tsFileResourceSeq.getTsFile().exists()); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/LastFlushTimeMapTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/LastFlushTimeMapTest.java index 20b3dfe378a..b260445a5bd 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/LastFlushTimeMapTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/LastFlushTimeMapTest.java @@ -25,7 +25,6 @@ import org.apache.iotdb.db.exception.DataRegionException; import org.apache.iotdb.db.exception.WriteProcessException; import org.apache.iotdb.db.storageengine.StorageEngine; import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionTaskManager; -import org.apache.iotdb.db.storageengine.dataregion.memtable.TsFileProcessor; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; import org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.DeviceTimeIndex; import org.apache.iotdb.db.utils.EnvironmentUtils; @@ -90,9 +89,7 @@ public class LastFlushTimeMapTest { dataRegion.insert(DataRegionTest.buildInsertRowNodeByTSRecord(record)); } - for (TsFileProcessor tsfileProcessor : dataRegion.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } + dataRegion.syncCloseWorkingTsFileProcessors(false); Assert.assertEquals( 10000, dataRegion.getLastFlushTimeMap().getFlushedTime(0, new PlainDeviceID("root.vehicle.d0"))); @@ -116,10 +113,6 @@ public class LastFlushTimeMapTest { record.addTuple(DataPoint.getDataPoint(TSDataType.INT32, measurementId, String.valueOf(j))); dataRegion.insert(DataRegionTest.buildInsertRowNodeByTSRecord(record)); } - - for (TsFileProcessor tsfileProcessor : dataRegion.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } dataRegion.syncCloseAllWorkingTsFileProcessors(); Assert.assertEquals( 10000, @@ -155,10 +148,6 @@ public class LastFlushTimeMapTest { record.addTuple(DataPoint.getDataPoint(TSDataType.INT32, measurementId, String.valueOf(j))); dataRegion.insert(DataRegionTest.buildInsertRowNodeByTSRecord(record)); } - - for (TsFileProcessor tsfileProcessor : dataRegion.getWorkUnsequenceTsFileProcessors()) { - tsfileProcessor.syncFlush(); - } dataRegion.syncCloseAllWorkingTsFileProcessors(); Assert.assertEquals( 604_800_000,
