OpenAIはPandoを発表した。これは、同社のモノレポ(単一のコードリポジトリ)におけるすべての開発を担う新しいGitバックエンドである。Gitクライアントとプロトコルは変更なく、エンジニアとCodexエージェントは引き続きgit pushとgit fetchコマンドを従来通り実行する。変更されたのはサーバーのみだ。同社によれば、コード送信(push)の中央遅延は約80%減少した。
OpenAIがバックエンドを変更した理由
Codexエージェントによる並行作業が急増した。OpenAIが公開したコミットグラフによると、masterブランチへのコミット数は、2024年第1四半期と比較して2026年第3四半期には1,378%増加し、2026年第4四半期の見積もりでは+2,442%に達している。現在、各プッシュは継続的インテグレーションツールによる多数のフェッチを引き起こす。2025年末には、フェッチとプッシュが遅延し、マージが失敗し、信頼性が90%を下回ることもあった。同社は、ボトルネックがGit自体ではなく、Gitの提供方法にあると結論付けた。
Pandoの仕組み
OpenAIが公開したエンジニアリングブログ記事によると、Pandoは、ほとんどのGitサーバーが当然と考える2つの前提を排除している。1つ目はリポジトリ全体の一貫性に関するものだ。従来のサーバーはリポジトリ全体の参照更新を順序付けするため、無関係なプッシュも待機しなければならない。Pandoは因果的一貫性を採用し、各ブランチを個別に処理し、クライアントが同じ参照をプッシュする場合にのみ競合が発生する。トレードオフとして、複数のブランチを参照する読み手は、それらを異なる時点で見ることになる可能性がある。
2つ目の前提は、クライアントごとに個別のパックを生成することに関するものだ。標準的なサーバーはフェッチごとに新しいパックを作成するが、Pandoは送信された各パックを不変のblobとして保存し、「参照バージョン」を拡張可能なメタデータストアに記録する。プッシュにはメタデータの読み書きが定数回数必要で、フェッチには埋めるべきバージョンの差の対数に比例した回数が必要となる。プッシュサイズを制限するため、新しいブランチのベースとしてアナウンスされるのはメインブランチのみである。OpenAIのモノレポでは、中央値のパックサイズは20 KiB未満だ。
パックはその後、Gitプロトコルの既存機能であるpackfile-uriを介して配信され、Expressと呼ばれる配信サービスが地域ごとにキャッシュする。キャッシュヒット率は99%以上だ。各プッシュは「L0」パックを作成し、バックグラウンドプロセスがそれをより大きなパックに順次統合していく。現在のモノレポではL4レベルまで統合される。このメカニズムがGitの従来のガベージコレクションに取って代わる。
自己申告による数値
OpenAIによると、Pandoは1日あたりほぼ1ペタバイトのGitデータをわずか数CPUコアで処理し、1時間で57 TB以上のパックを提供した。そのうち99%以上はローカルディスクキャッシュからの提供だった。標準的なクラウド仮想マシンでは、クローンとフェッチが10 Gbit/sリンクを飽和させた。同社はまた、数千の同時送信者によるテストを実施し、劣化はなかったとしている。これらはすべて自己申告による数値であり、独立したベンチマークはまだ公開されていない。
Pandoはオープンソースではなく、OpenAIは技術を共有する方法を模索していると述べている。複数のブランチを参照する読み取りでは、特定時点でのリポジトリの単一スナップショットは得られない。また、スタックされたブランチを繰り返しプッシュすると、メインブランチ外のコンテンツ全体が返される。Gitクライアントへの修正はアップストリームに反映されたが、バックエンドは現時点では内部に留まっている。
