OpenAIは、同社の開発者やAIエージェントによって生成されるコードコミットの急激な成長に対応し、巨大なモノレポをサポートするために特別に設計された「Pando」と呼ばれる新しいGitバックエンドシステムの開発詳細を明らかにしました。同社によると、四半期のコミット数は2024年第1四半期と比較して2,400%以上増加したということです。
新しいシステムにより、プッシュ操作のレイテンシは約5倍に短縮され、現在では毎日約1ペタバイトのGitデータが処理されています。Rustを使用して10週間かけて開発され、そのコードの大部分がCodexエージェントによって記述されたこの開発プロセスにおいて、OpenAIはAnthropicなどの他の企業のようにゼロから全く新しいクライアントシステムやソフトウェアアーキテクチャを構築するのではなく、標準的なGitとの互換性を維持することを決定しました。
新しいPandoシステムはどのように機能するか?
Pandoは、従来のGitサーバーが必須とする2つの基本的な前提を排除することで、従来のボトルネックを克服しています。すなわち、リポジトリのすべてのブランチで同時に一貫した状態を維持しないこと、そしてフェッチ操作中にクライアントごとにカスタムのパックファイル(packfiles)を生成しないことです。
- グローバル調整の排除: システムは各ブランチを独立して処理するため、無関係なブランチへのプッシュが他のブランチの更新によって待たされるのを防ぎます。
- リアルタイム検証とキャッシング: システムはクラウドストレージにストリーミングされる際にパックファイルをローカルで解凍することなく検証し、「Express」と呼ばれるキャッシュサービスがネットワーク経由で99%以上のヒット率でパックを提供します。
- バックエンド統合(コンパクション): バックエンドサーバーは、ログ構造化データベースに似た方法で、小さなパックを時間の経過とともに徐々により大きなパックにマージします。
オープンな貢献と制限
社内のPandoシステムに加えて、OpenAIは、パックの同時ダウンロードや中断された転送の再開に関連するGitのネイティブクライアントのいくつかの欠陥を修正せざるを得ませんでした。同社はこれらの修正や並列インデックス作成などの他の拡張機能をオープンソースプロジェクトに送信しましたが、バックエンドシステムのPando自体は現時点ではクローズドソースのままとなっています。
ニュースの出典
The New Stack - Software Development
原文を開く ↗