Skip to content

Commit b856169

Browse files
Fix when we record to only capture actual writes.
1 parent ce39e6f commit b856169

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

x-pack/plugin/blob-cache/src/main/java/org/elasticsearch/blobcache/shared/SharedBlobCacheService.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1312,13 +1312,11 @@ private int readSingleRegion(
13121312
mapSubRangeToRegion(rangeToWrite, region),
13131313
mapSubRangeToRegion(rangeToRead, region),
13141314
readerWithOffset(reader, fileRegion, Math.toIntExact(rangeToRead.start() - regionStart)),
1315-
writerWithOffset(writer, fileRegion, Math.toIntExact(rangeToWrite.start() - regionStart)),
1315+
metricRecordingWriter(writerWithOffset(writer, fileRegion, Math.toIntExact(rangeToWrite.start() - regionStart))),
13161316
ioExecutor,
13171317
readFuture
13181318
);
1319-
int result = readFuture.get();
1320-
blobCacheMetrics.recordWrite();
1321-
return result;
1319+
return readFuture.get();
13221320
}
13231321

13241322
private int readMultiRegions(
@@ -1346,7 +1344,9 @@ private int readMultiRegions(
13461344
mapSubRangeToRegion(rangeToWrite, region),
13471345
subRangeToRead,
13481346
readerWithOffset(reader, fileRegion, Math.toIntExact(rangeToRead.start() - regionStart)),
1349-
writerWithOffset(writer, fileRegion, Math.toIntExact(rangeToWrite.start() - regionStart)),
1347+
metricRecordingWriter(
1348+
writerWithOffset(writer, fileRegion, Math.toIntExact(rangeToWrite.start() - regionStart))
1349+
),
13501350
ioExecutor,
13511351
listener
13521352
);
@@ -1357,7 +1357,6 @@ private int readMultiRegions(
13571357
}
13581358
}
13591359
readsComplete.get();
1360-
blobCacheMetrics.recordWrites(endRegion - startRegion + 1);
13611360
return bytesRead.get();
13621361
}
13631362

@@ -1422,6 +1421,16 @@ public void fillCacheRange(
14221421
return adjustedWriter;
14231422
}
14241423

1424+
private RangeMissingHandler metricRecordingWriter(RangeMissingHandler writer) {
1425+
return new DelegatingRangeMissingHandler(writer) {
1426+
@Override
1427+
public SourceInputStreamFactory sharedInputStreamFactory(List<SparseFileTracker.Gap> gaps) {
1428+
blobCacheMetrics.recordWrite();
1429+
return super.sharedInputStreamFactory(gaps);
1430+
}
1431+
};
1432+
}
1433+
14251434
private RangeAvailableHandler readerWithOffset(RangeAvailableHandler reader, CacheFileRegion<KeyType> fileRegion, int readOffset) {
14261435
final RangeAvailableHandler adjustedReader = (channel, channelPos, relativePos, len) -> reader.onRangeAvailable(
14271436
channel,

0 commit comments

Comments
 (0)