Cache uploads shouldn't block dependent local actions #13632
Labels
P1
I'll work on this now. (Assignee required)
team-Remote-Exec
Issues and PRs for the Execution (Remote) team
type: feature request
Description of the problem / feature request:
Currently cache uploads take place as the last part of a local action spawn. This ties up the
local_cpu_resources
, and also prevents dependent local action spawns from starting (even though they have the inputs they need now).Instead, the upload of local actions outputs to the cache should be independent spawns, that don't count towards
local_cpu_resources
, and don't block dependent local actions. Remote actions that need the output as input (found viaFindMissingBlobs
) should still wait for the upload to finish, including the already started upload with the other inputs inRemoteExecutionCache.ensureInputsPresent()
.Feature requests: what underlying problem are you trying to solve with this feature?
By doing this, a non-remote build can complete a lot faster, as it no longer has to wait for uploads to finish to move onto the next action. These uploads will no longer take up
local_cpu_resources
, allowing for more parallel local actions (as long as--jobs
is set higher than--local_cpu_resources
). The end of the build can report that it's waiting for uploads to finish, similar to what it does today for BES and Profile uploading.What operating system are you running Bazel on?
macOS 11.4
What's the output of
bazel info release
?4.1.0 and HEAD
Have you found anything relevant by searching the web?
The text was updated successfully, but these errors were encountered: