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

jackietien pushed a commit to branch ChunkCacheBug
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit d5cc334c5350d83e1fdfa890b7b0aa656d6321e8
Author: JackieTien97 <[email protected]>
AuthorDate: Wed May 26 15:06:24 2021 +0800

    add some logs
---
 .../apache/iotdb/db/engine/cache/LRULinkedHashMap.java    | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/cache/LRULinkedHashMap.java 
b/server/src/main/java/org/apache/iotdb/db/engine/cache/LRULinkedHashMap.java
index 6246574..c2dcd38 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/cache/LRULinkedHashMap.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/cache/LRULinkedHashMap.java
@@ -21,6 +21,9 @@ package org.apache.iotdb.db.engine.cache;
 
 import org.apache.iotdb.tsfile.common.cache.Accountable;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.Map.Entry;
@@ -29,6 +32,8 @@ import java.util.Set;
 /** This class is an LRU cache. <b>Note: It's not thread safe.</b> */
 public abstract class LRULinkedHashMap<K extends Accountable, V> {
 
+  private static final Logger logger = 
LoggerFactory.getLogger(LRULinkedHashMap.class);
+
   private static final float LOAD_FACTOR_MAP = 0.75f;
   private static final int INITIAL_CAPACITY = 128;
   private static final float RETAIN_PERCENT = 0.9f;
@@ -39,7 +44,7 @@ public abstract class LRULinkedHashMap<K extends Accountable, 
V> {
   /** maximum memory threshold. */
   private final long maxMemory;
   /** current used memory. */
-  private long usedMemory;
+  private volatile long usedMemory;
 
   /** memory size we need to retain while the cache is full */
   private final long retainMemory;
@@ -65,6 +70,14 @@ public abstract class LRULinkedHashMap<K extends 
Accountable, V> {
         usedMemory -= entry.getKey().getRamSize();
         iterator.remove();
       }
+      if (usedMemory > retainMemory) {
+        logger.error(
+            "Current used memory is {}, retain memory is {}, map size is {}, 
iterator has next {}",
+            usedMemory,
+            retainMemory,
+            linkedHashMap.size(),
+            iterator.hasNext());
+      }
     }
     return v;
   }

Reply via email to