OpenAI 宣布开发了 Pando,这是一个专为 Git 仓库设计的新后端,旨在随着公司单体仓库规模的扩大和需求的增长而扩展。据 OpenAI 称,该系统是为满足 Codex 所支持的并发工作需求而构建的,Codex 已改变了公司开发的规模和节奏。
中文 ·
OpenAI 推出 Pando,以扩展单体仓库的 Git 后端
OpenAI 开发了 Pando,这是一个新的 Git 后端,旨在处理日益增长的工程与代理(agents)并发工作需求。
作者 Hermes-Vector AI Desk · Read in English

摘要
- OpenAI 开发 Pando 以应对单体仓库需求的增长以及来自工程师和代理的并发工作。
- Pando 采用因果一致性模型,允许对不同分支进行独立的并行更新。
- 该系统复用 packfiles 以最大化读取吞吐量并减少服务器计算量。
- 在生产环境中,Pando 将中位推送延迟降低了近 5 倍,每日处理数据量接近 1 PB。
开发驱动力
OpenAI 报告称,在过去一年中,其单体仓库的规模和需求以“惊人的速度”增长。该公司表示,从去年年底左右开始,支持单体仓库的系统难以跟上步伐,导致获取和推送变慢,合并失败,可靠性有时甚至低于 90%。
OpenAI 指出,Codex 使工程师能够并行完成更多工作,从而导致分支、推送、合并以及来自研究任务、开发环境和 CI 的获取操作增多。这些需求相互叠加,因为单个工程师可能同时准备好多个变更以供 CI 处理,而每次推送都可能触发多个作业获取相同的提交。
Pando 的技术架构
为了解决这些扩展挑战,OpenAI 设计了 Pando,以实现两个主要目标:针对向多个分支并发推送优化的水平可扩展写入,以及最大化的读取吞吐量,以便客户端能够以足够快的速度下载数据以充分利用可用网络带宽。
与常规方法不同,Pando 利用了一种称为因果一致性(CC)的松弛一致性模型。据 OpenAI 称,这使得系统能够通过协调每个分支的独立更新来扩展写入。虽然这为单个引用(refs)的更新提供了可串行化性,但读取多个分支的客户端不能假设这些读取描述了整个仓库中的单个时间点。
Pando 的关键技术特性包括:
- 写入优化: Pando 在将 packfiles 流式传输到 blob 存储时进行验证,而无需将其解包到本地仓库。它使用多键事务在元数据存储中记录引用版本,并原子地更新引用指针。
- 读取优化: Pando 在不同获取操作中复用 packfiles,而不是为每个客户端生成单独的 packfiles。这使得服务器能够以极小的计算量向多个客户端提供相同的字节数据。
- 兼容性: 该系统保留了与 Git 协议和客户端的兼容性,允许工程师和代理将 Pando 集成到现有工作流中。
性能与对比
OpenAI 将 Pando 与另外两种常见的 Git 扩展方法进行了评估:三阶段提交(3PC)设计和预写日志(WAL)设计。在模拟中,OpenAI 发现 3PC 设计在磁盘饱和时负载下的写入延迟显著更高,而 WAL 系统在服务器难以跟上从日志读取的速度时,读取延迟显著更高。
在生产环境中,OpenAI 表示 Pando 将中位推送延迟降低了近 5 倍,现在每日交付近 1 PB 的 Git 数据。
为何重要
随着开发扩展到包含更多代理和并行工作,传统的 Git 服务模式面临瓶颈。OpenAI 转向自定义后端旨在支持“代理级工作”,同时向上游 Git 社区贡献改进。
来源(英文)
本文由人工智能翻译自英文原文,并经过自动审核,确保与原文意思一致。来源已用英文核实。
How do you feel about this story?
Comments 0
No comments yet. Start the discussion.