Repository navigation
bundle: read blobs in 4 MiB chunks during history export - #4137
Open
kevinmingtarja wants to merge 1 commit into
Open
kevinmingtarja wants to merge 1 commit into
kevinmingtarja wants to merge 1 commit into
Conversation
history export read blobs from the builder's content store in many small sequential reads, each one a separate RPC, which made exporting a record slow over a remote builder. Buffer these reads so each blob is fetched in chunks of up to 4 MiB. Fixes docker#4136 Signed-off-by: Kevin Mingtarja <kevin.mingtarja@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #4136
history exportread blobs from the builder's content store in many small sequential reads, each a separate RPC, so exporting a record over a remote builder took tens of seconds. This buffers those reads so each blob is fetched in chunks of up to 4 MiB.This runs on every CI build:
docker/build-push-actionexports the build record in its post step to generate the job summary, on by default unlessDOCKER_BUILD_SUMMARY=false(build-push-action, actions-toolkit).Exporting the same record from a remote builder (~80–120 ms per RPC), 5 runs each:
Content/ReadRPCsWith this PR, we're doing a lot less RPCs now:
Assisted by Claude Code (Claude Opus 5.5). Reviewed and validated fully by myself.