This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch QueryMetrics in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 4c6dd00e32f7677f832d52dfe3158e02392f02bb Author: Minghui Liu <[email protected]> AuthorDate: Wed Dec 7 09:35:38 2022 +0800 fix --- .../apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java | 9 ++++++--- 1 file changed, 6 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 c9610d3354..b3ad5d379b 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 @@ -140,15 +140,17 @@ public class TimeSeriesMetadataCache { TimeseriesMetadata timeseriesMetadata = lruCache.getIfPresent(key); if (timeseriesMetadata == null) { - long startTime = System.nanoTime(); if (debug) { DEBUG_LOGGER.info( "Cache miss: {}.{} in file: {}", key.device, key.measurement, key.filePath); DEBUG_LOGGER.info("Device: {}, all sensors: {}", key.device, allSensors); } + // allow for the parallelism of different devices synchronized ( devices.computeIfAbsent(key.device + SEPARATOR + key.filePath, WeakReference::new)) { + long startTime = System.nanoTime(); + // double check timeseriesMetadata = lruCache.getIfPresent(key); if (timeseriesMetadata == null) { @@ -183,9 +185,10 @@ public class TimeSeriesMetadataCache { } } } + + QueryStatistics.getInstance() + .addCost(TIME_SERIES_METADATA_CACHE_MISS, System.nanoTime() - startTime); } - QueryStatistics.getInstance() - .addCost(TIME_SERIES_METADATA_CACHE_MISS, System.nanoTime() - startTime); } if (timeseriesMetadata == null) { if (debug) {
