ocadaruma commented on code in PR #14289:
URL: https://github.com/apache/kafka/pull/14289#discussion_r1493877586
##########
clients/src/main/java/org/apache/kafka/common/record/FileRecords.java:
##########
@@ -421,6 +446,18 @@ private AbstractIterator<FileChannelRecordBatch>
batchIterator(int start) {
return new RecordBatchIterator<>(inputStream);
}
+ /**
+ * Try populating OS page cache with file content
+ */
+ public void prepareForRead() throws IOException {
+ if (DEVNULL_PATH != null) {
+ long size = Math.min(channel.size(), end) - start;
+ try (FileChannel devnullChannel = FileChannel.open(DEVNULL_PATH,
StandardOpenOption.WRITE)) {
+ channel.transferTo(start, size, devnullChannel);
Review Comment:
> do we want to pre-populate the entire content represented by the
FileRecords
Given that FileRecords here represents a slice of the file adjusted to
fetch-size, we want to pre-populate the entire content here because even the
single `writeTo` might read only smaller part, network-thread anyways needs
entire content.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]