Merge Queue
summary
Uber builds a centralized merge scheduler called SubmitQueue that enumerates speculation trees, runs conflict analysis via Buck or Bazel targets, and uses regression and classification models to predict build time and chain success (classification at ~97% accuracy). It implements bypassing large diffs, prioritizes probable builds, and schedules top nodes to CI; results show ~53% less CI resource usage, ~44% lower CPU, and 37% faster P95 land times while keeping mainline green.
AI-written summary · about
chapters (11)
- 0:00Start
- 0:22The challenge of maintaining a green mainline
- 1:21Scale of Uber's engineering and repository challenges
- 2:40Introduction to SubmitQueue merge system
- 3:16Four core architectural components of SubmitQueue
- 4:06Managing build combinations and speculation trees
- 5:03Implementing conflict analysis to reduce builds
- 6:31Probabilistic speculation and build success prediction
- 8:45Bypassing large diffs to improve landing times
- 10:29Using machine learning for build time and success
- 12:03Results and impact of SubmitQueue enhancements
related talks
16mUber’s Android CI Engine: Lean, Green, and Fast
22mKeeping builds green at scale
32mMerge Strategies at Scale: Developer Happiness Through Better Code-submission Workflows
35mMQ: merge-queue
42mThe solution of merge hell in monorepo
31mDude, Where's My Build? Android CI/CD
41mDude, Where's My Build? Android CI/CD at Uber
43mBetter, Faster, and Stronger CI/CD Pipeline
