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