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 <[email protected]>
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;
   }
 

Reply via email to