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/02/28 10:32:42 UTC
[iotdb] branch master updated: Add TsFileResource back to TsFileResourceManager when all time index are file level (#9164)
This is an automated email from the ASF dual-hosted git repository.
haonan 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 cff9a6437c Add TsFileResource back to TsFileResourceManager when all time index are file level (#9164)
cff9a6437c is described below
commit cff9a6437cf4be715dfa290c88cd4e7a0f59031d
Author: Alan Choo <43...@users.noreply.github.com>
AuthorDate: Tue Feb 28 18:32:34 2023 +0800
Add TsFileResource back to TsFileResourceManager when all time index are file level (#9164)
---
.../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 c16cd691a3..2bc98aabb2 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
@@ -336,42 +336,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()));
}
}
}