siso: use remote concurrency for two phase caching

two phase caching issues several gRPC calls
 - ListActions,
 - BatchReadBlobs for command message if needed
 - GetTree for input root to match inputs
 - GetActionResult to get action result if action matched

each gRPC call uses one stream in gRPC conn during active,
and GetTree stream call would keep stream for long time,
so if two phase caching sema is too big (with cache concurrency),
gRPC streams in conn are saturated, and lots of gRPC calls
need to wait for stream and got timedout (and that caused
two phase cache misses).

To avoid such gRPC stream saturation, reduce concurrency
for two phase caching.

Bug: b/539291862
Change-Id: I00ff06bd3f32c8a0e4f8b354cb7923f35a1500a9
Reviewed-on: https://chromium-review.googlesource.com/c/build/+/8161080
Auto-Submit: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Junji Watanabe <jwata@google.com>
Commit-Queue: Junji Watanabe <jwata@google.com>
1 file changed
tree: dbc4506defab3f31142425744a8efabaa733800d
  1. bench/
  2. gong/
  3. hashigo/
  4. infra/
  5. kajiya/
  6. kzipinfo/
  7. remote-apis/
  8. runmc/
  9. siso/
  10. .gitignore
  11. .golangci.yml
  12. .style.yapf
  13. BUILD_OWNERS
  14. BUILD_TEAM_OWNERS
  15. CONTRIBUTING.md
  16. LICENSE
  17. OWNERS
  18. PRESUBMIT.py
  19. README.md
  20. WATCHLISTS
README.md

build.git repository

This repository contains tools developed and owned by the Chrome Build Team.

Quick start

The steps for getting the code are:

  1. Install depot_tools
  2. Run git clone https://chromium.googlesource.com/build

We use the standard Go module workflow to work on our projects.

Links