This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch TimeSeriesMetadataCacheBug in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit dffddbfed3c4a8627ec15b38a658d217719a6e55 Author: JackieTien97 <[email protected]> AuthorDate: Wed Dec 23 12:54:07 2020 +0800 fix bug --- .../apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 05ecabd..3e00ea0 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 @@ -165,9 +165,13 @@ public class TimeSeriesMetadataCache { // put TimeSeriesMetadata of all sensors used in this query into cache lock.writeLock().lock(); try { - timeSeriesMetadataList.forEach(metadata -> - lruCache.put(new TimeSeriesMetadataCacheKey(key.filePath, key.device, - metadata.getMeasurementId()), metadata)); + timeSeriesMetadataList.forEach(metadata -> { + TimeSeriesMetadataCacheKey k = new TimeSeriesMetadataCacheKey(key.filePath, + key.device, metadata.getMeasurementId()); + if (!lruCache.containsKey(k)) { + lruCache.put(k, metadata); + } + }); timeseriesMetadata = lruCache.get(key); } finally { lock.writeLock().unlock();
