-
Notifications
You must be signed in to change notification settings - Fork 205
Add support for the compressed-blobs REAPI proposal #386
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
35 commits
Select commit
Hold shift + click to select a range
eb612d7
use the proposed compressed-blobs REAPI
mostynb 712e06e
[disk] store CAS blobs in compressed form
mostynb e9fbf6e
[disk] try to preserve atimes when migrating CAS blobs
mostynb f522e31
[bytestream] add support for compressed-blobs reads and writes
mostynb e1d3c4d
[http] allow zstd-encoded CAS GETs
mostynb ba069f8
[http] accept zstd-encoded PUTs
mostynb 5eac267
[http] document how to upload/download zstd-compressed data
mostynb 997695a
[zstd] limit concurrency to 1 for single-use {en,de}coders
mostynb fe70a24
[zstd] use decoder and encoder pools
mostynb 0accc93
[bytestream] be more careful about calling Close on the result of Get…
mostynb 6cc58ac
[disk] make the CAS storage mode (zstd/uncompressed) configurable
mostynb 2176041
[disk] fan out when migrating old data files
mostynb 038e067
[disk] use raw uncompressed CAS blob files
mostynb f8eb86c
[disk] validate cache file hash values when loading
mostynb 512ad74
remove --destructive_compression_prototype flag
mostynb d5ad6e7
doc: mention compressed-blobs in the gRPC section of the readme file
mostynb e873612
[disk] fix space accounting
mostynb eaffa82
[httpproxy] don't read remote file headers for CAS.v2 Contains size v…
mostynb 67a2ad0
[disk] make compressed cas blob files valid .zst
mostynb 9154319
[disk] encode logical CAS blob sizes in the filename
mostynb 3832c9c
[disk] fix --storage_mode uncompressed uploads
mostynb f907889
[proxy] add cmdline flags for http and gcs backend proxies
mostynb 0cdfdeb
[proxy] switch between v1 and v2 CAS blobs depending on the storage mode
mostynb 163eb40
[s3proxy] don't read remote file headers for CAS.v2 Contains size value
mostynb 9af561e
[http] don't interact with files in tests, use disk.Cache public API
mostynb 0bdc1b4
[disk] rework the disk storage to avoid fs operations while holding t…
mostynb 63ba6fc
[casblob] sanity check file size
mostynb b12351e
[casblob] add note that we never store empty files
mostynb 605d444
[casblob] add missing Close on error conditions
mostynb c24f861
[casblob] make the GetUncompressedReadCloser and GetZstdReadCloser co…
mostynb ed9901a
[casblob] GetLegacyZstdReadCloser should pass errors to readers
mostynb 311fb8e
[casblob] read and write chunk offset table with one binary.Read/Writ…
mostynb ff4c853
[casblob] proxy backends should return the logical size for Get
mostynb 564d20e
[casblob] test a basic assumption about the sizeof int
mostynb 48e8649
[disk] accept ascii characters in random string of blob filenames
mostynb File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") | ||
|
|
||
| go_library( | ||
| name = "go_default_library", | ||
| srcs = ["casblob.go"], | ||
| importpath = "github.com/buchgr/bazel-remote/cache/disk/casblob", | ||
| visibility = ["//visibility:public"], | ||
| deps = [ | ||
| "//utils/zstdpool:go_default_library", | ||
| "@com_github_klauspost_compress//zstd:go_default_library", | ||
| "@com_github_mostynb_zstdpool_syncpool//:go_default_library", | ||
| ], | ||
| ) | ||
|
|
||
| go_test( | ||
| name = "go_default_test", | ||
| srcs = ["casblob_test.go"], | ||
| embed = [":go_default_library"], | ||
| ) |
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a note: I found out that https://github.com/luben/zstd-jni is much less CPU intensive during unrelated testing - esp. for decompression. This may not matter for now though, possibly more data points would be needed if want to switch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For bazel? Sounds interesting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ugh, I meant https://github.com/DataDog/zstd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, that makes more sense :) I prefer to avoid cgo for now, but it's possible that we switch in the future if it looks worthwhile.