This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch Parallelism in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 686e95be75b6c40e29e8473a1af446053bce1c9c Author: JackieTien97 <[email protected]> AuthorDate: Sat Dec 19 11:03:32 2020 +0800 change parallelism in timeseries metadata cache --- .../org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 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 62eee4b..474ba38 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 @@ -64,7 +64,9 @@ public class TimeSeriesMetadataCache { private final ReadWriteLock lock = new ReentrantReadWriteLock(); - private final Map<String, WeakReference<String>> devices = Collections.synchronizedMap(new WeakHashMap<>()); + private final Map<String, WeakReference<String>> devices = Collections + .synchronizedMap(new WeakHashMap<>()); + private static final String SEPARATOR = "$"; private TimeSeriesMetadataCache() { if (CACHE_ENABLE) { @@ -132,7 +134,8 @@ public class TimeSeriesMetadataCache { printCacheLog(true); } else { // allow for the parallelism of different devices - synchronized (devices.computeIfAbsent(key.device, WeakReference::new)) { + synchronized (devices + .computeIfAbsent(key.device + SEPARATOR + key.filePath, WeakReference::new)) { // double check lock.readLock().lock(); try {
