専用に割ったら破綻した——10億人規模のストレージ設計が、共有コンテナへ戻るまで
OpenAIが
- ペタバイト/データの
量を 表す 単位で、 よく 使われる ギガバイトの 100万倍に あたる 大きさです。 - ミリ秒/1000分の
1秒を 表す 単位で、 画面や 処理の 反応の 速さを 測る ときに 使われます。
「ワークロードごとに
要点
- 規模/10億人・約40リージョン・500PB超、
毎秒7,000万リクエスト - 設計の
往復 /単一共 有コンテナ → ワークロードごとの 専用コンテナ → 再び単 一共 有コンテナ - 破綻の
理由 /専用化が倒れたのは 技術ではなく容量 計画の 組織コスト - 性能/グローバルの
読み取りp50が約120msから 約10msへ、 。12倍 内訳は近接リージョンへの 複製/リージョン内キャッシュ/プロキシ層の のPython→Rust 書き換え 3つ - 最大規模/最大の
Cosmos DBアカウントは数十PB、 毎秒 2,000万クエリ超 - 次の
一手 /RocksDB CloudコアとRaft複製で、エクサバイト級の 自社ストレージ へ
優先順位も
規模が大きくなるとRU/sモデルが裏返る
第1段階はuser_id や workspace_id で
制限は物理パーティション側で
さらに
- 仕組み/プロビジョニングした
スループットは物理パーティション群に 分散される - 結果/分割が
起きる たびにパーティションあたりの 上限が 下がる - 具体
例 /10K RU/sのパーティションが 分割されると5K RU/sが 2つ になる
スケールアウトが、
専用コンテナは、技術ではなく運用で倒れた
第2段階は
記事が
- 専用コンテナ/10K RU/sで
切ってあれば余裕が ない - 共有コンテナ/100M RU/sの
共有なら吸収できる
そして
破綻したのは
共有へ戻る。ただし素の共有ではない
第3段階は
- ホットキースロットリング/単一キーが
物理パーティションを 食い 潰せないように する - QoSティアリング/バルクインサートのような
オフラインワークロードを、 対話リクエストより 先に 絞る - 改良サーバーレス/Cosmos DBチームと
共同で 改良し、物理パーティションあたり 10K RU/s までスケール。 ストレージ量に 加えてRU 使用量に がよる 分割 入る
回帰後の
ただし
12倍の内訳——Rustは3分の1
グローバル読み取りp50が
- 重要データの
近接リージョンへの 複製 - リージョン内キャッシュ(Valkeyを
使った 分散ルックアサイド。 無効化は Cosmos DBの 変更フィード (CDC) 経由で 数秒以内に グローバル伝播。 参照先は Metaの TAO) - Pythonプロキシの
Rust 書き換え
配置は
記事は
読み取りは90%超。だから信頼性が先に来る
読み取りは
- 電源障害/リージョンの
電源障害で、 最大アカウントの フェイルオーバーに数時間を 要した - フェイルバック/
その 1か 月後、 フェイルバック時のコネクションスタンピードが 元リージョンの ゲートウェイを 飽和させた
フェイルオーバーより
なぜ日本でまだ語られていないのか
第1部
英語側も
エンジニアにとって何が変わるか
①設計
ワークロードごとに
共有に
もう
②調達
Cosmos DBを
そのうえで、
ここから
③キャリア
NoSQLの
次の
確認できなかった点
- 改良サーバーレス/物理パーティションあたり
10K RU/sと RU 使用量ベース分割が 一般提供か 先行提供か。Microsoftの 公開ドキュメントは 2026年6月29日更新時点で 5,000 RU/sの まま - 数字の
不一致 /第1部の本文は 毎秒 7,000万リクエストと あるが、 ページの メタ記述は 2,200万と 食い 違う。 第2部の 最大アカウントは 毎秒 2,000万クエリ超との 記述 - 時期/共有コンテナ回帰の
具体的な 時期と、 「数か月インシデントゼロ」の 計測期間 - キャッシュ/Valkeyクラスタの
規模、 キャッシュヒット率、 変更フィード経由の 無効化の 実測伝播時間 ( 「数秒以内」との 記述のみ) - 自社ストレージ/投入時期と、
Cosmos DBからの 移行範囲 - 障害/2024年後半の
電源障害と フェイルオーバー遅延に ついて、 Azure側の 公開インシデントレポートとの 対応
出典
- 一次/OpenAI
「Rapidly scaling online storage to serve over 1 billion ChatGPT users (Part II)」 (2026年10月23日) - 一次/同 第1部
(2026年9月11日) - 一次/Microsoft Learn
「Partitioning and horizontal scaling in Azure Cosmos DB」/物理・論理パーティションの 上限 - 照合/Microsoft Learn
「Azure Cosmos DB serverless account type」 (最終更新2026年6月29日) /物理パーティションあたり 5,000 RU/s を本記事執筆時に 再確認 - 一次/Microsoft Learn「Azure Cosmos DB service quotas」
- 二次/SiliconANGLE
(2024年6月21日) /RocksDB Cloudコアの 出自 - 二次/第1部の
日本語 解説 (2026年9月12日)、 および第2部の 中国語解説
本記事は
案件をお探しの方へ
イーランサーでは、
ご登録いただいた
