ライフスタイル

GitHub、新Gitストレージ基盤「Rubicon」を公表:数千のAIエージェントが同一リポジトリへ同時プッシュ可能に

GitHubはエンジニアリングブログで、コードネーム Rubicon の新しいGitストレージ基盤を解説した。社内テストで毎秒7,200回のプッシュを達成したとしており、開発者のGitの使い方は変わらない。現在は限定的な非公開プレビューで、来年初めに広く提供する予定。

読了目安 7 分

GitHub、新Gitストレージ基盤「Rubicon」を公表:数千のAIエージェントが同一リポジトリへ同時プッシュ可能に
画像:Mokaair (Original editorial artwork)

何が起きたのか

GitHubは公式エンジニアリングブログで、先週のGitHub Universeで新しいGitストレージ基盤を発表したと述べた。GitHubによると、この基盤は毎秒数千件の書き込みを処理でき、読み取りは需要に応じて拡張できる。リポジトリはプロジェクトのコードと変更履歴を保管する場所で、プッシュ(push)はローカルのコード変更をGitHubへアップロードすることだ。GitHubは、社内テストで新基盤が1つのリポジトリに対し5,000のエージェントの同時処理と毎秒7,200回のプッシュに対応し、読み取りレイテンシも低く安定していたとしている。これらの数字はいずれもGitHub自身が公表したテスト結果である。

GitHubは刷新の理由も説明している。現在GitHub.comで最も混雑するリポジトリでも、書き込みは毎秒最大で数十件にとどまり、多くは短時間のバーストだ。エージェントが並列かつ24時間稼働することで、GitHubは1年以内にこのバーストが持続的な高い書き込み量になると見込んでいる。さらに、各プッシュは追加の読み取りを引き起こす。たとえば自動テストやデプロイのシステムが新しいコミットを取得する。そのためGitHubは、現在より少なくとも2桁(約100倍以上)大きい規模を目標に据えた。

新アーキテクチャの仕組み

GitHubによると、設計の核となる着眼点は、Gitオブジェクト(ファイルの内容やコミット記録などのデータ)は一度書き込まれると変化せず、内容に基づいて名前が付くため、複数の書き込み手が互いに調整せずに同時に保存できるという点だ。調整が必要なのは参照の更新だけである。参照とは「あるブランチが現在どのコミットを指しているか」といったポインタを指す。調整が必要なのが参照だけなので、データの保存、リクエスト処理、リポジトリのメンテナンスの3つを、それぞれ独立して拡張できる。

  • オブジェクト:GitHubによると、pack(Gitが多数のオブジェクトをまとめたファイル)と読み取りを補助する高速化用データは、クラウドのオブジェクトストレージ Azure Blob Storage に置かれる。
  • 参照:参照とpackの一覧は、Ref-CASと呼ばれるレプリケーションログ型サービスに保存される。Ref-CASはReference Compare-and-Swapの略で、参照が書き込み手の想定した値のままである場合にのみ更新する仕組みだ。各更新は、過半数のレプリカが記録して初めて有効になる。
  • 仮想レプリカ:いつでも置き換え可能な計算リソースで、読み取りと書き込みを処理する。ローカルディスクは再構築可能なキャッシュにすぎず、リポジトリが混み合えばレプリカを増やす。
  • コンパクションノード:ここでの「コンパクション」(compaction)はファイルの統合を意味し、内容の削除ではない。コンパクションノードはバックグラウンドでストレージサービスに直接作用し、多数の小さなpackを少数の大きなpackにまとめる。すべてのオブジェクトは保持され、リクエストを処理するレプリカの負荷にもならない。
GitHubのエンジニアリングブログが説明する設計の違い
項目従来のやり方またはプロトタイプGitHubが説明する新方式
参照の更新単一のblob(クラウドストレージ上の1ファイル)を索引とする先行書き込みログで、同時に1件の条件付き書き込みしかできず、書き込みは毎秒数百回程度Ref-CASは更新に関わる参照だけをロックする。GitHubは、参照状態だけなら毎秒数万回の操作が可能としている
参照を分割するプロトタイプ参照を複数のセグメントblobに分散して書き込みは速くなるが、読み取りのたびに全セグメントを確認する必要があるバージョン番号を比較する。バージョンが変わっていなければ参照を含まない応答を返し、比較は1回で済む
コンパクションリクエストを処理するレプリカ上で実行され、しかも各レプリカが実行する独立したノードがバックグラウンドで実行し、各ノードがリース(一時的な排他権)でデータの一部(シャード)を担当する

一般読者と開発者への実際の影響

GitHubによると、開発者にとってGitはこれまでどおりGitのままだ。プッシュ、フェッチ(fetch、最新の変更をダウンロードすること)、ブランチ作成の方法は同じで、保護機能も維持される。GitHubは、個人の小さなプロジェクトから最も混雑する大規模リポジトリまで、すべてのリポジトリを特別扱いなしで同じ基盤上で動かすことを目指している。

提供時期について、GitHubはこの基盤が現在限定的な非公開プレビューのみで、来年初めに広く提供する予定だと述べている。そのため、ほとんどのユーザーは短期的には変化を直接感じないだろう。GitHubは今後の計画として、必要なデータだけを読み取る仕組み、部分レプリカ、グローバルレプリカ、アトミックコミットAPI(複数ファイルの変更を一度に送り、全部成功するか全体が取り消される)、イベントストリームなども挙げているが、これらは現時点ではあくまで計画である。

よくある質問

この基盤は今すぐ使えますか?

GitHubによると現在は限定的な非公開プレビューで、来年初めに広く提供する予定です。

一般の開発者はGitの使い方を変える必要がありますか?

GitHubによると不要です。プッシュ、フェッチ、ブランチ作成の方法は同じで、保護機能も維持されます。

毎秒7,200回のプッシュという数字は信頼できますか?

GitHub自身が公表した社内テストの結果で、現時点で独立した第三者による検証は確認されていません。GitHubの主張として受け止めてください。

なぜAIエージェントのためにストレージ基盤を作り直すのですか?

GitHubによると、エージェントは並列かつ24時間稼働するため、1つのリポジトリへの書き込みが短時間のバーストから持続的な高い書き込み量に変わると見込まれ、各プッシュはさらに多くの読み取りも生みます。

このトピックの最新ニュースを見る

出典

ライフスタイル