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(

Reply via email to