[internal] use CAS BatchReadBlobs API for small blob reads (Cherry-pick of #15969) #15997
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.
In #12537, Pants learned how to send small blob writes to a remote store via the
BatchUpdateBlobs
API of the REAPI instead of theByteStream.Write
streaming API. This PR similarly teaches Pants how to use theBatchReadBlobs
API for small blob reads instead of theByteStream.Read
API.The goal is to reduce the overhead of small blob reads by avoiding the multiple message exchanges required by the streaming API.
Note: This PR does not batch multiple small blob reads together, which is an approach that could be worthwhile to evaluate in the future.