You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2021/05/28 08:04:36 UTC

[iotdb] branch ChunkCacheCaffeine created (now 503cd7f)

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

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


      at 503cd7f  Use Caffeine Cache

This branch includes the following new commits:

     new 503cd7f  Use Caffeine Cache

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[iotdb] 01/01: Use Caffeine Cache

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 503cd7fb006091bb27a45be7c720047098566789
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Fri May 28 16:03:50 2021 +0800

    Use Caffeine Cache
---
 server/pom.xml                                      |  7 +++----
 .../apache/iotdb/db/engine/cache/ChunkCache.java    | 21 +++++++--------------
 .../db/engine/cache/TimeSeriesMetadataCache.java    | 12 ++++++------
 3 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/server/pom.xml b/server/pom.xml
index 0597e03..8ad3ea8 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -214,10 +214,9 @@
             <scope>compile</scope>
         </dependency>
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>29.0-jre</version>
-            <scope>compile</scope>
+            <groupId>com.github.ben-manes.caffeine</groupId>
+            <artifactId>caffeine</artifactId>
+            <version>3.0.2</version>
         </dependency>
     </dependencies>
     <build>
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java b/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
index bb7b095..3c0f36f 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
@@ -28,15 +28,14 @@ import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
 import org.apache.iotdb.tsfile.read.common.Chunk;
 import org.apache.iotdb.tsfile.utils.RamUsageEstimator;
 
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import com.google.common.cache.Weigher;
+import com.github.benmanes.caffeine.cache.CacheLoader;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.Weigher;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicLong;
 
 /**
@@ -61,7 +60,7 @@ public class ChunkCache {
       logger.info("ChunkCache size = " + MEMORY_THRESHOLD_IN_CHUNK_CACHE);
     }
     lruCache =
-        CacheBuilder.newBuilder()
+        Caffeine.newBuilder()
             .maximumWeight(MEMORY_THRESHOLD_IN_CHUNK_CACHE)
             .weigher(
                 new Weigher<ChunkMetadata, Chunk>() {
@@ -128,13 +127,7 @@ public class ChunkCache {
           chunkMetaData.getStatistics());
     }
 
-    Chunk chunk;
-    try {
-      chunk = lruCache.get(chunkMetaData);
-    } catch (ExecutionException e) {
-      logger.error("something wrong happened while loading {}", chunkMetaData);
-      throw new IOException(e);
-    }
+    Chunk chunk = lruCache.get(chunkMetaData);
 
     if (debug) {
       DEBUG_LOGGER.info("get chunk from cache whose meta data is: " + chunkMetaData);
@@ -178,7 +171,7 @@ public class ChunkCache {
 
   @TestOnly
   public boolean isEmpty() {
-    return lruCache.size() == 0;
+    return lruCache.estimatedSize() == 0;
   }
 
   /** singleton pattern. */
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
index f5ff011..8417709 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
@@ -31,10 +31,10 @@ import org.apache.iotdb.tsfile.read.common.Path;
 import org.apache.iotdb.tsfile.utils.BloomFilter;
 import org.apache.iotdb.tsfile.utils.RamUsageEstimator;
 
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import com.google.common.cache.Weigher;
+import com.github.benmanes.caffeine.cache.CacheLoader;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.LoadingCache;
+import com.github.benmanes.caffeine.cache.Weigher;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -77,7 +77,7 @@ public class TimeSeriesMetadataCache {
           "TimeseriesMetadataCache size = " + MEMORY_THRESHOLD_IN_TIME_SERIES_METADATA_CACHE);
     }
     lruCache =
-        CacheBuilder.newBuilder()
+        Caffeine.newBuilder()
             .maximumWeight(MEMORY_THRESHOLD_IN_TIME_SERIES_METADATA_CACHE)
             .weigher(
                 new Weigher<TimeSeriesMetadataCacheKey, TimeseriesMetadata>() {
@@ -383,7 +383,7 @@ public class TimeSeriesMetadataCache {
 
   @TestOnly
   public boolean isEmpty() {
-    return lruCache.size() == 0;
+    return lruCache.estimatedSize() == 0;
   }
 
   public static class TimeSeriesMetadataCacheKey {