Skip to content
AI-Daily-Builder

2026-10-25 — views

OpenAI、HabitatストレージプラットフォームのためのAzure Cosmos DBのスケーリング手法を公開

読む理由 巨大なグローバル規模におけるマルチテナンシー効率と分離ニーズのバランスに関するケーススタディ。

OpenAIのエンジニアが、40のリージョンで10億人以上のユーザーを支えるため、Habitat内のAzure Cosmos DBを最適化した手法を解説。

Azure Cosmos DBによるHabitatのスケーリング

OpenAIは、オンラインストレージプラットフォームであるHabitatを、10億人以上のChatGPTユーザーに対応できるようスケールさせるためのエンジニアリングの旅の後半について詳細を明らかにした。40の地理的リージョン全体でミリ秒単位の応答時間を必要とするこのプラットフォームは、基盤となるストレージコンポーネントとしてAzure Cosmos DBを利用している。Azureチームと緊密に連携することで、OpenAIは共同管理コンテナを用いた実用的なマルチテナンシーアプローチを開発し、大規模な環境下で優れた読み取り性能を実現した。

マルチテナンシーのトレードオフ

インフラストラクチャがスケールするにつれ、チームは分離を提供するものの高価な過剰プロビジョニングを必要とする単一テナントシステムから、中央集約型のデータベースチームによって管理されるマルチテナントシステムへ移行することが多い。マルチテナンシーはリソース効率を向上させるものの、あるテナントの負荷が他のテナントのパフォーマンスを低下させる「ノイジーネイバー」などの課題を生じさせる。Habitatの取り組みは、単一のマルチテナントコンテナから始まり、分離のために単一テナントのバックエンドコンテナへ移行し、最終的に効率性と信頼性のバランスを取るためにマルチテナントのデフォルト設定に戻すという循環的な進化を遂げた。

パーティションの制限への対応

当初、HabitatはAzure Cosmos DBのプリミティブに依存しており、論理パーティションキーあたり10,000 RU/sという明記された制限に依存しながら、あらゆるクライアント負荷を受け入れていた。このアプローチには3つの主要な問題があった。第一に、異なる製品ユースケースがuser_idやworkspace_idなどのキーを共有した場合に論理パーティションキーの衝突が発生し、スループットが制約された。第二に、論理パーティションが物理パーティションの制限を共有しているため、ニッチなワークロードがコアフローを阻害するノイジーネイバー問題が生じた。第三に、物理パーティションの分割により弱パーティションが生じた。データ量が増加するにつれて、パーティションあたりのスループット容量が縮小し、ストレージ負荷の高いユースケースのパフォーマンスが低下した。

ワークロード分離の実装

これらの問題を軽減するため、OpenAIは重要な新規ユースケースに対して個別のAzure Cosmos DBコンテナを使用することでワークロード分離を導入した。これにより、各コンテナは独立した物理パーティションを持つようになり、ノイジーネイバーの影響が軽減された。エンジニアはまた、物理パーティションの数と総プロビジョニング済みスループットを同期させるスクリプトを実装し、分割時の容量縮小を防止した。しかし、従来の重要なユースケースは共有デフォルトコンテナに残ったままとなり、負荷の増大や本番環境でのインシデントの増加を招いた。その結果、OpenAIはデフォルトコンテナを過剰な負荷から保護するために、新しいサービスや主要な機能に対して個別のコンテナをプロビジョニングし始めた。

実装ノート

大規模にAzure Cosmos DBを使用する開発者は、物理パーティションの分割を慎重に監視すべきである。これは、パーティションあたりの実効スループットを静かに低下させる可能性があるためである。高トラフィックまたは重要なサービスに対して個別のコンテナを用いて厳格なワークロード分離を実装することで、ノイジーネイバーの問題を防止し、信頼性の高いパフォーマンスを確保できる。


ソース

タグ

チップ