Skip to content

Remote-execution client flow optimisation (technical debt)

Background

Initial remote-execution implementation (!626 (merged)) does not query the ActionCache itself but systematically forge and send a new ExecuteRequest (including full source tree upload), relying on the server to hit the cache by setting skip_cache_lookup to False.

The expected client execution flow is documented in the Overview section of the REAPI design document.

Hit the ActionCache directly from the client would, first, be faster, and second, allow us to not engage a costly source push if the ActionResult is already cached.

Task description

Implementation should include:

  • Call GetActionResult() as a first server request.
  • Jump to artifact pulling if the ActionResult is in cache.
  • Continue to source pushing and ExecuteRequest forging if not.
Edited by Martin Blanchard
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information