You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2023/03/01 04:15:22 UTC

[iotdb] branch rel/1.0 updated: [To rel/1.0] Add TsFileResource back to TsFileResourceManager when all time index are file level (#9165)

This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/1.0 by this push:
     new 97b4ee1fe0 [To rel/1.0] Add TsFileResource back to TsFileResourceManager when all time index are file level (#9165)
97b4ee1fe0 is described below

commit 97b4ee1fe091c7e9f2f70f7b2236c0543aeeb620
Author: Alan Choo <43...@users.noreply.github.com>
AuthorDate: Wed Mar 1 12:15:14 2023 +0800

    [To rel/1.0] Add TsFileResource back to TsFileResourceManager when all time index are file level (#9165)
---
 .../iotdb/db/rescon/TsFileResourceManager.java     |  5 +-
 .../iotdb/db/rescon/ResourceManagerTest.java       | 56 +++++++++-------------
 2 files changed, 26 insertions(+), 35 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java b/server/src/main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java
index b20e84216e..511883679c 100644
--- a/server/src/main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java
@@ -94,8 +94,9 @@ public class TsFileResourceManager {
       if (tsFileResource == null
           || TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType())
               == TimeIndexLevel.FILE_TIME_INDEX) {
-        logger.error("Can't degrade any more");
-        throw new RuntimeException("Can't degrade any more");
+        logger.debug("Can't degrade time index any more because all time index are file level.");
+        sealedTsFileResources.add(tsFileResource);
+        return;
       }
       long memoryReduce = tsFileResource.degradeTimeIndex();
       logger.info("Degrade tsfile resource {}", tsFileResource.getTsFilePath());
diff --git a/server/src/test/java/org/apache/iotdb/db/rescon/ResourceManagerTest.java b/server/src/test/java/org/apache/iotdb/db/rescon/ResourceManagerTest.java
index 4f1513a353..7bc9d6fc29 100644
--- a/server/src/test/java/org/apache/iotdb/db/rescon/ResourceManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/rescon/ResourceManagerTest.java
@@ -353,42 +353,32 @@ public class ResourceManagerTest {
     }
   }
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void testAllFileTimeIndexDegrade() throws IOException, WriteProcessException {
-    long reducedMemory = 0;
     double curTimeIndexMemoryThreshold = 322;
     tsFileResourceManager.setTimeIndexMemoryThreshold(curTimeIndexMemoryThreshold);
-    try {
-      for (int i = 0; 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);
-        assertEquals(
-            TimeIndexLevel.DEVICE_TIME_INDEX,
-            TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType()));
-        seqResources.add(tsFileResource);
-        long previousRamSize = tsFileResource.calculateRamSize();
-        System.out.println(previousRamSize);
-        prepareFile(tsFileResource, i * ptNum, ptNum, 0);
-        tsFileResourceManager.registerSealedTsFileResource(tsFileResource);
-        assertEquals(
-            TimeIndexLevel.FILE_TIME_INDEX,
-            TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType()));
-        reducedMemory = previousRamSize - tsFileResource.calculateRamSize();
-      }
-    } catch (RuntimeException e) {
-      assertEquals(1072, reducedMemory);
-      assertEquals(7, seqResources.size());
-      throw e;
+    for (int i = 0; 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);
+      assertEquals(
+          TimeIndexLevel.DEVICE_TIME_INDEX,
+          TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType()));
+      seqResources.add(tsFileResource);
+      prepareFile(tsFileResource, i * ptNum, ptNum, 0);
+      tsFileResourceManager.registerSealedTsFileResource(tsFileResource);
+      assertEquals(
+          TimeIndexLevel.FILE_TIME_INDEX,
+          TimeIndexLevel.valueOf(tsFileResource.getTimeIndexType()));
     }
   }
 }