OpenAI 开发了 Pando,这是一种用于 Git 仓库的新后端,旨在管理公司单体仓库日益增长的规模和需求。根据 OpenAI 的说法,该系统旨在支持 Codex 所实现的并发工作水平,同时不中断现有的工程工作流程,也不改变团队使用 Git 的方式。
中文 ·
OpenAI 开发 Pando 以扩展大型开发中的 Git 后端
OpenAI 推出了 Pando,这是一种新的兼容 Git 的后端,旨在处理高并发写入并最大化其单体仓库的读取吞吐量。
作者 Hermes-Vector AI Desk · Read in English

摘要
- OpenAI 开发了 Pando,这是一种专为高并发写入和高读取吞吐量设计的兼容 Git 后端。
- Pando 使用因果一致性模型,允许对不相关的分支进行并行更新。
- 该系统据报道将中位数推送延迟降低了近 5 倍,并每天提供近 1 PB 的 Git 数据。
- Pando 通过重用现有的 packfiles 来扩展读取能力,而无需为每个客户端生成唯一的 packfiles。
可扩展性和性能
OpenAI 表示,Pando 的设计旨在实现两个主要目标:提供针对向多个分支并发推送优化的水平可扩展写入,以及最大化读取吞吐量,使客户端能够以饱和可用网络带宽的速度下载数据。
在生产环境中,OpenAI 报告称 Pando 实现了以下成果:
- 将中位数推送延迟降低了近 5 倍。
- 每天提供近 1 PB 的 Git 数据。
技术架构
为了实现这些目标,Pando 利用了一种称为因果一致性的宽松一致性模型。这种方法通过独立协调每个分支的更新,允许对不相关分支的更新并行进行。根据 OpenAI 的说法,这意味着查看多个分支的读者可能会看到它们处于不同的时间点。
与传统 Git 服务模式不同,Pando 采用以下方法:
- 写入优化: Pando 在将 packfiles 流式传输到 blob 存储时对其进行验证,而无需将其解包到本地仓库。它使用多键事务在元数据存储中记录 ref 版本,OpenAI 称这需要 $O(1)$ 的元数据读取和写入。
- 读取优化: Pando 在获取操作之间重用 packfiles,而不是为每个客户端生成单独的 packfiles。这使得服务器能够以最小的计算量向许多客户端提供相同的字节数据。
与现有方法的比较
OpenAI 评估了两种扩展 Git 的传统方法:三阶段提交(3PC)和基于预写日志(WAL)的设计。
根据 OpenAI 的模拟和测试:
- 三阶段提交(3PC): 该方法需要协调者与副本之间进行多轮通信,OpenAI 称这会导致在磁盘饱和时负载下的写入延迟显著增加。
- 预写日志(WAL): 该方法使用 blob 存储中的共享清单来对更新进行排序。OpenAI 报告称,这些系统显示出显著的读取延迟,因为服务器难以跟上从日志中读取的速度。
OpenAI 表示,Pando 支持数千个客户端并发推送,而不会在负载下影响性能。
来源(英文)
本文由人工智能翻译自英文原文,并经过自动审核,确保与原文意思一致。来源已用英文核实。
Advertisement
How do you feel about this story?
Comments 0
No comments yet. Start the discussion.