Explain why RandomAccessFileReader* is not passed into FilePrefetchBuffer constructor #13159
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
In #13118 (comment), we decided to make a separate follow-up PR that refactors
FilePrefetchBuffer
to determineuse_fs_buffer
once at construction time.The change would have involved passing in the
RandomAccessFileReader*
directly to the constructor, and using that to determineuse_fs_buffer
. This would avoid repeatedly callingUseFSBuffer(RandomAccessFileReader* reader)
during the actual prefetch requests.I started working on this refactoring change but ran into issues with these 2 files, which used
GetOrCreatePrefetchBuffer
As I explained in the added code comments, sometimes the
RandomAccessFileReader*
is not available when we construct theFilePrefetchBuffer
, so although it is not the most elegant, I think right now it makes sense to pass in thereader
into thePrefetch
/PrefetchAsync
/TryReadFromCache
calls. Maybe there is a workaround but I don't think the refactor would be worth it.Test Plan
N/A (comments)