This is an automated email from the ASF dual-hosted git repository.
jackietien 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 95c1b928f98 Refactor ResourceManagerTest to make it insensitive to the
change of TsFileResourceSize
95c1b928f98 is described below
commit 95c1b928f980aabe2d5004fc14c268b470420f26
Author: Jiang Tian <[email protected]>
AuthorDate: Tue May 6 09:18:35 2025 +0800
Refactor ResourceManagerTest to make it insensitive to the change of
TsFileResourceSize
---
.../rescon/memory/ResourceManagerTest.java | 79 ++++++++++++++++++----
1 file changed, 67 insertions(+), 12 deletions(-)
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/rescon/memory/ResourceManagerTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/rescon/memory/ResourceManagerTest.java
index 62de76b2e69..4236cbcd576 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/rescon/memory/ResourceManagerTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/rescon/memory/ResourceManagerTest.java
@@ -218,7 +218,7 @@ public class ResourceManagerTest {
assertEquals(
TimeIndexLevel.ARRAY_DEVICE_TIME_INDEX,
TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType()));
- long curTimeIndexMemoryThreshold = 322;
+ long curTimeIndexMemoryThreshold = 0;
tsFileResourceManager.setTimeIndexMemoryThreshold(curTimeIndexMemoryThreshold);
tsFileResourceManager.registerSealedTsFileResource(tsFileResource);
assertEquals(
@@ -268,6 +268,12 @@ public class ResourceManagerTest {
+ IoTDBConstant.FILE_NAME_SEPARATOR
+ 0
+ ".tsfile"));
+ TsFileResource degradedResource1 = new TsFileResource(file1);
+ degradedResource1.setStatusForTest(TsFileResourceStatus.NORMAL);
+ degradedResource1.updatePlanIndexes((long) 0);
+ prepareFile(degradedResource1, 0, ptNum, 0);
+ degradedResource1.degradeTimeIndex();
+
TsFileResource tsFileResource1 = new TsFileResource(file1);
tsFileResource1.setStatusForTest(TsFileResourceStatus.NORMAL);
tsFileResource1.updatePlanIndexes((long) 0);
@@ -275,12 +281,7 @@ public class ResourceManagerTest {
assertEquals(
TimeIndexLevel.ARRAY_DEVICE_TIME_INDEX,
TimeIndexLevel.valueOf(tsFileResource1.getTimeIndexType()));
- long curTimeIndexMemoryThreshold = 4291;
-
tsFileResourceManager.setTimeIndexMemoryThreshold(curTimeIndexMemoryThreshold);
- tsFileResourceManager.registerSealedTsFileResource(tsFileResource1);
- assertEquals(
- TimeIndexLevel.ARRAY_DEVICE_TIME_INDEX,
- TimeIndexLevel.valueOf(tsFileResource1.getTimeIndexType()));
+
File file2 =
new File(
TestConstant.BASE_OUTPUT_PATH.concat(
@@ -299,6 +300,15 @@ public class ResourceManagerTest {
assertEquals(
TimeIndexLevel.ARRAY_DEVICE_TIME_INDEX,
TimeIndexLevel.valueOf(tsFileResource2.getTimeIndexType()));
+
+ long curTimeIndexMemoryThreshold =
+ degradedResource1.calculateRamSize() +
tsFileResource2.calculateRamSize();
+
tsFileResourceManager.setTimeIndexMemoryThreshold(curTimeIndexMemoryThreshold);
+ tsFileResourceManager.registerSealedTsFileResource(tsFileResource1);
+ assertEquals(
+ TimeIndexLevel.ARRAY_DEVICE_TIME_INDEX,
+ TimeIndexLevel.valueOf(tsFileResource1.getTimeIndexType()));
+
tsFileResourceManager.registerSealedTsFileResource(tsFileResource2);
assertEquals(
TimeIndexLevel.FILE_TIME_INDEX,
TimeIndexLevel.valueOf(tsFileResource1.getTimeIndexType()));
@@ -309,8 +319,51 @@ public class ResourceManagerTest {
@Test
public void testMultiDeviceTimeIndexDegrade() throws IOException,
WriteProcessException {
- long curTimeIndexMemoryThreshold = 9663;
-
tsFileResourceManager.setTimeIndexMemoryThreshold(curTimeIndexMemoryThreshold);
+ long curTimeIndexMemoryThreshold = 0;
+ for (int i = 0; i < 8; i++) {
+ File file =
+ new File(
+ TestConstant.BASE_OUTPUT_PATH.concat(
+ i
+ + IoTDBConstant.FILE_NAME_SEPARATOR
+ + i
+ + IoTDBConstant.FILE_NAME_SEPARATOR
+ + 0
+ + IoTDBConstant.FILE_NAME_SEPARATOR
+ + 0
+ + ".tsfile"));
+ TsFileResource tsFileResource = new TsFileResource(file);
+ tsFileResource.setStatusForTest(TsFileResourceStatus.NORMAL);
+ tsFileResource.updatePlanIndexes((long) i);
+ assertEquals(
+ TimeIndexLevel.ARRAY_DEVICE_TIME_INDEX,
+ TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType()));
+ prepareFile(tsFileResource, i * ptNum, ptNum, 0);
+ tsFileResource.degradeTimeIndex();
+ curTimeIndexMemoryThreshold += tsFileResource.calculateRamSize();
+ }
+ for (int i = 8; i < seqFileNum; i++) {
+ File file =
+ new File(
+ TestConstant.BASE_OUTPUT_PATH.concat(
+ i
+ + IoTDBConstant.FILE_NAME_SEPARATOR
+ + i
+ + IoTDBConstant.FILE_NAME_SEPARATOR
+ + 0
+ + IoTDBConstant.FILE_NAME_SEPARATOR
+ + 0
+ + ".tsfile"));
+ TsFileResource tsFileResource = new TsFileResource(file);
+ tsFileResource.setStatusForTest(TsFileResourceStatus.NORMAL);
+ tsFileResource.updatePlanIndexes((long) i);
+ assertEquals(
+ TimeIndexLevel.ARRAY_DEVICE_TIME_INDEX,
+ TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType()));
+ prepareFile(tsFileResource, i * ptNum, ptNum, 0);
+ curTimeIndexMemoryThreshold += tsFileResource.calculateRamSize();
+ }
+
for (int i = 0; i < seqFileNum; i++) {
File file =
new File(
@@ -331,8 +384,11 @@ public class ResourceManagerTest {
TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType()));
seqResources.add(tsFileResource);
prepareFile(tsFileResource, i * ptNum, ptNum, 0);
- tsFileResourceManager.registerSealedTsFileResource(tsFileResource);
}
+
+
tsFileResourceManager.setTimeIndexMemoryThreshold(curTimeIndexMemoryThreshold);
+ seqResources.forEach(tsFileResourceManager::registerSealedTsFileResource);
+
assertEquals(10, tsFileResourceManager.getPriorityQueueSize());
for (int i = 0; i < seqFileNum; i++) {
// TODO: size of DeviceID may different with string device
@@ -350,8 +406,7 @@ public class ResourceManagerTest {
@Test
public void testAllFileTimeIndexDegrade() throws IOException,
WriteProcessException {
- long curTimeIndexMemoryThreshold = 322;
-
tsFileResourceManager.setTimeIndexMemoryThreshold(curTimeIndexMemoryThreshold);
+ tsFileResourceManager.setTimeIndexMemoryThreshold(0);
for (int i = 0; i < seqFileNum; i++) {
File file =
new File(