diff --git llap-server/src/java/org/apache/hadoop/hive/llap/cache/LowLevelCacheImpl.java llap-server/src/java/org/apache/hadoop/hive/llap/cache/LowLevelCacheImpl.java index 3933f46..41ca0f7 100644 --- llap-server/src/java/org/apache/hadoop/hive/llap/cache/LowLevelCacheImpl.java +++ llap-server/src/java/org/apache/hadoop/hive/llap/cache/LowLevelCacheImpl.java @@ -113,6 +113,7 @@ private void getOverlappingRanges(long baseOffset, DiskRangeList currentNotCache assert currentNotCached != null; Map.Entry e = matches.next(); LlapDataBuffer buffer = e.getValue(); + long requestedLength = currentNotCached.getLength(); // Lock the buffer, validate it and add to results. if (DebugUtils.isTraceLockingEnabled()) { LlapIoImpl.LOG.info("Locking " + buffer + " during get"); @@ -133,7 +134,7 @@ private void getOverlappingRanges(long baseOffset, DiskRangeList currentNotCache currentNotCached = addCachedBufferToIter(currentNotCached, currentCached, baseOffset); // Now that we've added it into correct position, we can adjust it by base offset. currentCached.shiftBy(-baseOffset); - metrics.incrCacheHitBytes(currentCached.getLength()); + metrics.incrCacheHitBytes(Math.min(requestedLength, currentCached.getLength())); } }