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 2021/07/06 14:09:37 UTC
[iotdb] 01/01: Use cachedDevicePool to reduce TsFileResource memory
size
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch deviceIdPool12
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit d4880c71cd0e73462f066ba2a2dd9aeccadc9d9c
Author: HTHou <hh...@outlook.com>
AuthorDate: Tue Jul 6 22:09:01 2021 +0800
Use cachedDevicePool to reduce TsFileResource memory size
---
.../db/engine/storagegroup/timeindex/DeviceTimeIndex.java | 3 ++-
.../db/engine/storagegroup/timeindex/FileTimeIndex.java | 12 ++++++++----
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/DeviceTimeIndex.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/DeviceTimeIndex.java
index 381d4b3..25f09f4 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/DeviceTimeIndex.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/DeviceTimeIndex.java
@@ -190,7 +190,8 @@ public class DeviceTimeIndex implements ITimeIndex {
index = deviceToIndex.get(deviceId);
} else {
index = deviceToIndex.size();
- deviceToIndex.put(deviceId, index);
+ String cachedDeviceId = cachedDevicePool.computeIfAbsent(deviceId, k -> k);
+ deviceToIndex.put(cachedDeviceId, index);
if (startTimes.length <= index) {
startTimes = enLargeArray(startTimes, Long.MAX_VALUE);
endTimes = enLargeArray(endTimes, Long.MIN_VALUE);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
index e1e5251..8c6a156 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
@@ -173,7 +173,8 @@ public class FileTimeIndex implements ITimeIndex {
@Override
public void updateStartTime(String deviceId, long time) {
- devices.add(deviceId);
+ String cachedDeviceId = cachedDevicePool.computeIfAbsent(deviceId, k -> k);
+ devices.add(cachedDeviceId);
if (this.startTime > time) {
this.startTime = time;
}
@@ -181,7 +182,8 @@ public class FileTimeIndex implements ITimeIndex {
@Override
public void updateEndTime(String deviceId, long time) {
- devices.add(deviceId);
+ String cachedDeviceId = cachedDevicePool.computeIfAbsent(deviceId, k -> k);
+ devices.add(cachedDeviceId);
if (this.endTime < time) {
this.endTime = time;
}
@@ -189,13 +191,15 @@ public class FileTimeIndex implements ITimeIndex {
@Override
public void putStartTime(String deviceId, long time) {
- devices.add(deviceId);
+ String cachedDeviceId = cachedDevicePool.computeIfAbsent(deviceId, k -> k);
+ devices.add(cachedDeviceId);
this.startTime = time;
}
@Override
public void putEndTime(String deviceId, long time) {
- devices.add(deviceId);
+ String cachedDeviceId = cachedDevicePool.computeIfAbsent(deviceId, k -> k);
+ devices.add(cachedDeviceId);
this.endTime = time;
}