Skip to content
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

[FeatureRequest] Support ZSTD encoding for HTTP remote cache server #23463

Open
gdh1995 opened this issue Aug 29, 2024 · 0 comments
Open

[FeatureRequest] Support ZSTD encoding for HTTP remote cache server #23463

gdh1995 opened this issue Aug 29, 2024 · 0 comments
Labels
help wanted Someone outside the Bazel team could own this P3 We're not considering working on this, but happy to review a PR. (No assignee) team-Remote-Exec Issues and PRs for the Execution (Remote) team type: feature request

Comments

@gdh1995
Copy link

gdh1995 commented Aug 29, 2024

Description of the feature request:

The common remote-cache server software bazel-remote supports ZSTD encoding on both HTTP and GRPC protocols, and it can even store ZSTD-compressed casblobs and then serve them directly to HTTP clients.

So bazel may also support the Accept-Encoding: zstd HTTP requests (besides gzip), just like what #14041 has added into GPRC requests.

Which category does this issue belong to?

Remote Execution

What underlying problem are you trying to solve with this feature?

To make HTTP traffic much smaller and also faster.
If a remote-cache server is bazel-remote, Accept-Encoding: zstd will also save the server's CPU and power.

Which operating system are you running Bazel on?

Ubuntu 20.04 LTS (in docker)

What is the output of bazel info release?

release 6.5.0; while master on 2024-08-29 still lacks such feature

If bazel info release returns development version or (@non-git), tell us how you built Bazel.

N/A

What's the output of git remote get-url origin; git rev-parse HEAD ?

Private repos of my work office

Have you found anything relevant by searching the web?

#13344
#14041

Any other information, logs, or outputs that you want to share?

src/main/java/com/google/devtools/build/lib/remote/GrpcCacheClient.java has ZSTD-decompression support;
while src/main/java/com/google/devtools/build/lib/remote/http/HttpCacheClient.java uses io.netty.handler.codec.http.HttpContentDecompressor, which only recognizes gzip and deflate as said in https://netty.io/4.0/api/io/netty/handler/codec/http/HttpContentDecompressor.html.

@github-actions github-actions bot added the team-Remote-Exec Issues and PRs for the Execution (Remote) team label Aug 29, 2024
@joeleba joeleba added help wanted Someone outside the Bazel team could own this P3 We're not considering working on this, but happy to review a PR. (No assignee) and removed untriaged labels Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Someone outside the Bazel team could own this P3 We're not considering working on this, but happy to review a PR. (No assignee) team-Remote-Exec Issues and PRs for the Execution (Remote) team type: feature request
Projects
None yet
Development

No branches or pull requests

5 participants
@gdh1995 @joeleba @iancha1992 @satyanandak and others