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