Skip to main content
Engineering, Backend

Bypassing Large Diffs in SubmitQueue

1 August 2023 / Global
Featured image for Bypassing Large Diffs in SubmitQueue
Image
Figure 1: Speculation tree of builds and their outcomes from changes C1, C2, C3 (from [5])
Image
Figure 2. Timeline showing increased land time for smaller diffs waiting for a large diff
Image
Figure 3: The number of changes and the size of the largest change (measured by the number of root targets) Go SubmitQueue received each month relative to May 2021
Image
Figure 4: P95 latency (in minutes) in Go SubmitQueue since May 2021
Image
Figure 5: One change bypassing another change
Image
Figure 6: One change bypassing 2 changes
Image
Figure 7: Multiple changes bypassing one change
Image
Figure 8: Multiple changes bypassing multiple changes
Image
Figure 9: P95 latency (in minutes) in Go SubmitQueue before and after enabling BLRD
Zhongpeng Lin

Zhongpeng Lin

Zhongpeng Lin is a Staff Software Engineer for Developer Platform. He is one of the founding members of Uber’s Go Monorepo, and has been the Tech Lead of its build system since then. Over the years, he also worked on various areas that improved the developer experience for Go Monorepo, such as code coverage, Git sparse checkout, and dependency management. He is also a maintainer of Bazel’s Go rule set (a.k.a. rules_go) and Gazelle, as well as a frequent contributor to open source projects used by Uber.

Matthew Williams

Matthew Williams

Matthew Williams is a Staff Software Engineer for Developer Platform. He is the Technical Lead for SubmitQueue, and especially interested in improving performance and reliability for large monorepos. Matthew is also the Technical Lead for TargetAnalyzer, a service that computes changed targets in both Buck and Bazel based monorepos.

Posted by Zhongpeng Lin, Matthew Williams