Smart Build Targets Batching Service at Google
Kaiyuan Wang, Daniel Rall, Greg Tener, Vijay Gullapalli, Xin Huang and, Ahmed Gad

TL;DR
This paper presents a technique at Google that predicts resource usage for build targets and batches them to prevent memory and deadline issues, enhancing developer productivity.
Contribution
It introduces a novel prediction-based batching method for build targets to optimize resource usage and prevent build failures due to memory or time constraints.
Findings
Reduces build failures caused by memory overflows.
Improves build success rate and developer productivity.
Significantly decreases build timeouts and resource wastage.
Abstract
Google has a monolithic codebase with tens of millions build targets. Each build target specifies the information that is needed to build a software artifact or run tests. It is common to execute a subset of build targets at each revision and make sure that the change does not break the codebase. Google's build service system uses Bazel to build targets. Bazel takes as input a build that specifies the execution context, flags and build targets to run. The outputs are the build libraries, binaries or test results. To be able to support developer's daily activities, the build service system runs millions of builds per day. It is a known issue that a build with many targets could run out of the allocated memory or exceed its execution deadline. This is problematic because it reduces the developer's productivity, e.g. code submissions or binary releases. In this paper, we propose a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsCloud Computing and Resource Management · Software System Performance and Reliability · Parallel Computing and Optimization Techniques
