OpenAIは2026年9月11日、ChatGPT、Codex、APIなどのデータアクセスを支えるオンラインストレージ基盤Habitatの設計を公開しました。

公表値は毎秒7,000万超のリクエスト、500PB超のデータ、約40地域、週10億人超。注目すべきは規模だけではなく、Pythonサービスを延命しながら、複雑な問い合わせを意図的に排除し、オンライン処理と分析処理を分離した判断です。

この記事では、OpenAIの公式発表とAzure Cosmos DBの公式資料を基に、一般の開発・運用チームが持ち帰れる設計原則を整理します。

HABITAT AT A GLANCE

ChatGPTの前段にある「予測可能なデータ層」

70M+リクエスト/秒
500PB+保存データ
約40地理リージョン
10×超3年連続の年次成長

出典:OpenAI公式発表。値は同社による2026年9月11日時点の公表値。

Habitatは何をしているのか

利用者のログイン、Codex設定の取得、新しい会話の開始には、画面が返るまでに複数のデータ参照が走ります。Habitatは、製品とAzure Cosmos DB、独自ストレージ、Valkeyキャッシュ、Blob Storageなどの間に入り、次を共通化します。

  • キャッシュとルーティング
  • 認可ポリシー、暗号化、テナント分離
  • データ配置とレジデンシー
  • レート制限と負荷整形
  • Change Data Capture(変更履歴のストリーミング)

2年前は単一データベースへ接続するPythonのクライアントライブラリでした。製品ごとの複雑さを吸収するため、現在は独立した分散サービスへ進化しています。

技術ポイント1:Pythonの非同期処理は遅延を測って守る

Pythonのasyncioは、1つのイベントループが多数のI/O処理を切り替えます。OpenAIはバックグラウンドタスクを定期実行し、予定時刻と実行時刻の差からイベントループのスケジューリング遅延を実測しました。

高負荷時には数百ミリ秒、極端な場合は数秒の揺らぎが発生したため、1プロセス当たりの同時要求数を低く保ち、Pythonワーカープロセスを大量に水平展開しています。編集上の推論として、これは「非同期なら同時実行数を上げるほど効率的」という単純な運用が、CPU処理やコールバック集中で崩れることを示します。

実務で入れる観測値

Event-loop delay
予定時刻との差をP50/P95/P99で記録
プロセス別同時数
平均だけでなく最大と分散を見る
下流接続待ち
プール枯渇と再利用偏りを検知
過負荷後の回復
入力停止後に自然回復するか確認

技術ポイント2:LIFO接続プールが過負荷を固定した

初期運用では、一部のプロセスが平均の5〜10倍の同時要求を抱えました。負荷元を止めても過負荷プロセスへ要求が偏り続ける「準安定障害」が起き、再起動まで回復しない状態になったといいます。

調査で焦点になったのが、aiohttpのTCP接続プールにおけるLIFO(最後に戻った接続を最初に再利用)です。接続の最大再利用時間を制限すると劣化が抑えられ、原因の切り分けが進みました。

教訓は、ロードバランサが均等でも、長寿命接続の再利用規則が実効負荷を偏らせることです。インスタンス別の接続数、同時処理数、レイテンシを同じグラフで確認する必要があります。

技術ポイント3:「高機能にしない」ことがスケール戦略

Habitatは任意SQLを許さず、オブジェクトと直接エッジを扱う単純なNoSQL APIに制限しています。巨大スキャン、複雑なJOIN、無制限のファンアウトをオンライン経路から排除し、1要求の処理量を予測しやすくします。

要求オンライン経路別系統狙い
ID+パーティションキー参照Habitat一定量の高速処理
直接の関連取得Habitat局所性を保つ
複雑な検索・集計制限Rockset本番トラフィックと隔離
変更データ分析CDCを送出Kafka等非同期で派生処理

Microsoftの公式資料でも、Azure Cosmos DBでは1KB項目のポイント読み取りが1 RUである一方、問い合わせは結果数、述語、データ量などで消費量が変わります。また、物理パーティションは最大10,000 RU/s、50GBで、偏ったパーティションキーはホットスポットと429応答の原因になります。Habitatの単純なAPIとパーティション設計は、この特性に合うものです。

開発者・企業への影響

小〜中規模でも真似すべきこと

  1. 読み取りAPIを「キー指定」と「検索」に分ける。
  2. トランザクション系DBから分析・全文検索をCDCで分離する。
  3. テナント別のレート制限とコストを計測する。
  4. 平均レイテンシではなくP95/P99と過負荷後の回復を見る。
  5. 接続プールの再利用方式、寿命、上限を負荷試験する。

そのまま真似しないこと

大量のPythonプロセスによる水平展開は、OpenAIが基盤移行までの時間を買うために選んだ戦術でもあります。同社はRustへの移行も進めています。通常規模のサービスなら、言語変更より先に、遅い問い合わせ、ホットパーティション、キャッシュミス、接続偏りを直す方が費用対効果は高いでしょう。

今後注目すべき点

今回の記事は2部構成の前編です。OpenAIは次回、マルチテナント信頼性、階層的な読み取り最適化、Azure Cosmos DBとの大規模運用を詳しく説明すると予告しています。

今後の焦点は、Rust移行でテールレイテンシと計算効率がどこまで改善するか、500PB超でデータ配置をどう再均衡するか、障害ドメインとテナント分離をどう両立するかです。具体的なSLO、キャッシュヒット率、コストは今回の公表範囲に含まれていないため、数値比較は続報を待つ必要があります。

まとめ

Habitatの本質は、巨大なデータベース製品ではなく、製品チームが危険な問い合わせを作りにくい境界です。毎秒7,000万要求を支える設計原則は、機能追加よりも予測可能性、オンラインと分析の分離、実測によるボトルネック特定を優先することでした。

規模が何桁小さくても、「自由度を制限して事故を減らす」「平均ではなく偏りを見る」という考え方は、そのまま業務システムに応用できます。

参照元

最終確認日:2026年9月13日

Previous Post Next Post