Uber SubmitQueue:高性能推测合并队列
Uber SubmitQueue: a high-performance speculative merge queue
Uber 开源了 SubmitQueue,这是一个专为大规模开发团队设计的高性能推测合并队列。它通过智能的推测性合并策略,确保在海量代码提交下主干(trunk)始终处于绿色状态,有效解决了传统合并流程中的阻塞问题。该项目特别处理了 GitHub 原生堆叠 PR 与手动构建链的混合场景,通过动态检测机制精准区分,避免了对原生堆叠的误操作,同时修复了手动链中常见的 broken-diff 问题。SubmitQueue 不仅自动化了分支清理,还通过精细化的工作流控制,让代码审查和合并过程更加流畅高效,是追求极致开发效率团队的理想选择。
SubmitQueue 是一个高性能的推测合并队列,能够在大规模场景下始终保持你的主干处于绿色状态。
HN 评论区
60- bob1029
在大规模场景下,始终保持 trunk 持续 green 可能成本太高。就连 Google 都难以保证 google3 单体仓库始终可构建,更别提始终 green 了。与其死磕最后 0.1% 的完美,不如让 trunk 大部分时间保持 green,转而开发工具,快速定位问题并自动回滚罪魁祸首。
- sdfhbdf
Airbnb 内部也有一个基于 Uber 这篇论文的版本,叫 Evergreen,非常棒。
我真希望更多公司能开源他们的单体仓库基础设施。一个设计良好的单体仓库对大型组织来说是巨大的效能倍增器,但开源世界缺乏很多相关基础设施,导致大家要么从痛苦的起点开始重建,要么对单体仓库产生糟糕的印象。Google 的 Piper 就是另一个例子,如果开源或出售它,会对行业大有裨益。在这个代码由代理快速生成的时代,Piper 扩展性极佳,因为它早已适应了难以想象的提交速度,而其他人却还在试图重建版本控制系统以跟上节奏。
- esprehn
这是 Uber 早期在这方面的相关讨论,当时它还是纯内部产品(需要说明的是,我不确定该系统在这些帖子发布后内部经历了多少演进,也不确定该系统是否包含所有相同的组件)。