OpenAI、Gitバックエンド「Pando」を解説:因果一貫性でブランチ単位の書き込みを拡大、プッシュ遅延の中央値は自社報告で約80%減、ただしシミュレーションは教材モデルでPandoの外部提供は未記載

Published · AI Daily — AI-assisted deep research, methodology & disclosure

2026年11月2日、OpenAIのエンジニアは、Gitのプロトコルとクライアントを変えずにモノレポを提供し、現在OpenAIのモノレポ内の全開発を支える新しいバックエンド「Pando」を解説しました。Pandoはプッシュごとのpackfileを不変のblobとrefバージョンとして保存し、無関係なブランチを独立に書き込み、読み取りでは保存済みのパックを再利用して地域キャッシュから配信します。OpenAIはマージの信頼性向上、プッシュ遅延の中央値が約80%減(冒頭では約5倍)、1日ほぼ1PB、1時間で57TB(99%超がローカルキャッシュ)と自己報告しています。代償は因果一貫性のみでブランチ横断の時点ビューがないこと、既定でトランクのみを通知するため繰り返しのプッシュでデータを再送することです。1,000クライアントのシミュレーションは教材モデルとされ、Pandoの外部提供は書かれていません。

2026年11月2日、OpenAIのエンジニア3人、Aaron Friel、Taylor Blau、Ted Nymanが「Scaling Git at OpenAI(OpenAIでのGitのスケーリング)」を公開しました。記事は、Gitリポジトリを提供する新しいバックエンド「Pando」を紹介しており、Pandoは現在、OpenAIのモノレポの開発をすべて支えています。理由はCodexです。エンジニアが並行して進める作業が大幅に増え、開発環境、研究ジョブ、継続的インテグレーションから、ブランチ、プッシュ、マージ、フェッチ、クローンが増えました。昨年末ごろから旧システムは対応に苦しみ、フェッチとプッシュの遅延、マージの失敗が起き、信頼性が90%を下回ることもありました。

PandoはGitのプロトコルとクライアントを維持するため、エンジニアとエージェントの作業方法は変わりませんでした。目標は二つで、多数のブランチにまたがって水平にスケールする書き込みと、クライアントのネットワークを満たせるほど速い読み取りです。書き込みでは、受け取ったpackfileを不変のblobとして保存し、メタデータストアに「refバージョン」を記録します。無関係なブランチの更新は独立して進み、同じrefへのプッシュだけが衝突します。読み取りでは、クライアントごとに専用のパックを作らず、保存済みのpackfileを再利用し、地域キャッシュから配信されるpackfileのURIを返します。

著者は、自分たちがモデル化した二つの一般的な設計と比べています。一つは完全なレプリカ間の3フェーズコミットで、プッシュごとに複数回の往復が必要となり、レプリカのディスクが書き込み経路に入ります。もう一つはBLOBストレージ上の共有先行書き込みログで、すべてのプッシュが同じマニフェストの更新を競います。1,000クライアントの対話型シミュレーションでは、前者は負荷時に書き込みが遅くなり、後者は読み取りが遅くなります。ただしページはこのシミュレーションを「合成の教材モデルであり、本番のベンチマークではない」としており、設計の説明にはなっても本番の数字の証明にはなりません。

本番についての主張は具体的です。Pandoへの切り替えでマージの信頼性が上がり、プッシュ遅延の中央値は80%近く下がり、冒頭ではこれを約5倍と表現しています。Pandoは1日に1ペタバイト近いGitデータを配信し、1時間で57テラバイト超のパックを配信し、そのバイトの99%超はローカルディスクキャッシュからで、検証では標準的なクラウド仮想マシンで10Gbpsのリンクを飽和させました。パック配信サービスExpressはキャッシュヒット率99%超と報告しています。これらはOpenAIが自社の一つのモノレポについて出した数字で、独立した測定や、本番での他システムとの比較は記事にありません。

トレードオフについても記事は率直です。Pandoが提供するのは因果一貫性であり、すべてのrefの時点スナップショットではありません。クローン中に二つのクライアントが二つのブランチを異なるバージョンで見ることがあり、単一のrefの更新は直列化可能なままです。パックを再利用可能に保つため、Pandoはプッシュ時に既定で指定したトランクブランチだけを通知するので、同じ機能ブランチへの繰り返しのプッシュや、積み重ねたブランチでは、より多くのデータを再送します。OpenAIのモノレポでは、この方法で作られたパックの中央値は20KiB未満、99パーセンタイルは3MiB未満でした。Pandoは圧縮の各レベルでパックを保持し、L4までを使って、小さなダウンロードを何千回も行う代わりに、フェッチの計画を対数時間で行います。

構築については、Pandoはキックオフから本番まで10週間で、4月に本番トラフィックを扱い始め、中核は1人のエンジニアが設計し、エージェントのチームが実装し、少数のエンジニアが展開したと述べています。Rustで書かれ、適合性テストスイートと決定論的シミュレーションテストがあり、GPT-6 Astraのエージェントを使ってLeanとTLA+のモデルを書き、バグを見つけました。展開は、Pandoを旧システムへの読み書きスルーのプロキシとして始めたため、停止なしにトラフィックを移せました。PandoがOpenAIの外で使えるとは記事に書かれていません。

OpenAIはGit本体にも貢献しています。並行パックダウンロード、中断された転送後の後始末、完了済みダウンロードの再開に関する境界ケースを修正し、packfile-uriダウンロードのトレースを加え、プッシュするクライアントが--force-with-leaseを使ってトランクだけを基準にパックを作れるよう「explicit haves」を追加しました。一部の変更は上流のGitに入り、ほかはOpenAIの公開フォークにあります。取得時点で、GitHub上のそのフォークはgit/gitの公開フォークで、codexブランチはgit/gitのmasterより115コミット先行し522コミット遅れており、packfile-uriの再利用に関する最近のマージがありました。大きなモノレポを運用するチームにとっての教訓はトレードオフです。ブランチ間の一貫性を緩めることで書き込みのスケールを得ており、ここでうまくいったのは、ユーザーとエージェントが依存するのは単一のrefの更新順であって、全体の順序ではないからです。

Sources

FAQ

Pandoはなぜ一貫性を緩めるのですか?

無関係なブランチを並列に書き込めるようにするためです。Pandoは単一refの更新については直列化可能性を保ちますが、ブランチ間は因果一貫性にとどまり、クローン中に二つのクライアントが異なるバージョンのブランチを見ることがあります。OpenAIは、利用者とエージェントが依存するのは全体の順序ではなく単一refの更新順だと判断しています。

「約80%」と「約5倍」は別々の改善ですか?

別ではありません。冒頭はプッシュ遅延の中央値が約5倍改善、導入の節は約80%減と述べており、ほぼ同じ変化です。約5分の1になれば約80%の削減です。どちらもOpenAIが自社のモノレポについて自己報告した数字で、独立した測定でも他システムとの本番比較でもありません。

1,000クライアントのシミュレーションは本番性能の証拠になりますか?

なりません。ページはこれを合成の教材モデルで本番のベンチマークではないとし、3フェーズコミット、先行書き込みログ、Pandoの違いの説明に使っています。本番の主張はOpenAI自身のマージ信頼性、プッシュ遅延、1日の配信量、キャッシュヒット率の数字に基づき、Pandoの外部提供も記載されていません。