bazelbuild / bazelbuild/bazel

Bazel supports BatchReadBlobs and BatchUpdateBlobs APIs with the compression mode on and off.

Open
#18,746 0 comments 0 reactions 0 assignees View on GitHub
P2 team-Remote-Exec type: feature request
Dominant language
Java
Stars
25.8k
Forks
4.6k
Avg merge
2d 20h
Merged PRs (30d)
72

Description

### Description of the feature request:

I believe Bazel doesn't currently support Remote Execution's [BatchReadBlobs](https://github.com/bazelbuild/bazel/blob/eed10b2f23829438bd247297d01481cbf9bb1034/third_party/remoteapis/build/bazel/remote/execution/v2/remote_execution.proto#L394) and [BatchUpdateBlobs](https://github.com/bazelbuild/bazel/blob/eed10b2f23829438bd247297d01481cbf9bb1034/third_party/remoteapis/build/bazel/remote/execution/v2/remote_execution.proto#L370) APIs in the client and and I would like the Bazel to have the support. I would like this feature not only supporting to call Batch*Blobs APIs but also the client can call the APIs with a compression mode enabled which can be done by setting a compression parameters[[1](https://github.com/bazelbuild/bazel/blob/eed10b2f23829438bd247297d01481cbf9bb1034/third_party/remoteapis/build/bazel/remote/execution/v2/remote_execution.proto#L1629)][[2](https://github.com/bazelbuild/bazel/blob/eed10b2f23829438bd247297d01481cbf9bb1034/third_party/remoteapis/build/bazel/remote/execution/v2/remote_execution.proto#L1685)] in the requests.

Remote Execution currently accepts `zstd` compression algorithm. Thus, Bazel should be able to support the algorithm.

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

_No response_

### Which operating system are you running Bazel on?

_No response_

### What is the output of `bazel info release`?

_No response_

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

_No response_

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

_No response_

### Have you found anything relevant by searching the web?

_No response_

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

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reading the BatchReadBlobs and BatchUpdateBlobs definitions in third_party/remoteapis/build/bazel/remote/execution/v2/remote_execution.proto, including their compression parameters. Trace the Bazel Remote Execution client entry points that call these APIs and check existing tests for blob operations. Done means both APIs work with compression disabled and with the supported zstd mode.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.