データベース

グローバル分散DB ぐろーばるぶんさんでぃーびー

グローバル分散DBSpannerCockroachDBNewSQLマルチリージョン地理分散
グローバル分散DBについて教えて

簡単に言うとこんな感じ!

「世界中のデータセンターにデータを分散して置きながら、どこから読んでも最新データが取れる」超高機能なDBだよ。GoogleのSpannerが元祖で、「グローバルサービスでも整合性を保つ」という夢を実現したんだ!


グローバル分散DBとは

グローバル分散DBは、複数のリージョン(地域)にまたがってデータを分散保存しながら、強い整合性(Strong Consistency)とトランザクション機能を維持するデータベースです。

従来はCAP定理の「P(分断耐性)」を選ぶと「C(一貫性)」を犠牲にするしかありませんでした。しかしGoogleはTrueTime API(GPS/原子時計を使った精密時刻同期)を活用したGoogle Cloud Spannerで、グローバル分散と強い一貫性を両立させました。これは「CAP定理の壁を破った」と評され業界に衝撃を与えました。

主要なグローバル分散DB:

  • Google Cloud Spanner — 真の意味での地理分散+ACIDを初めて実現
  • CockroachDB — PostgreSQL互換のOSSグローバル分散DB
  • YugabyteDB — PostgreSQL/Cassandra互換のマルチリージョンDB
  • FaunaDB — ドキュメント型のグローバル分散DB

グローバル分散DBの特性

項目従来のRDB(マルチAZ)グローバル分散DB
分散範囲同一リージョン内(複数AZ)複数リージョン・大陸間
整合性強い整合性強い整合性(新技術で実現)
書き込み先シングルプライマリ複数リージョンで書き込み可
レイテンシ低(同リージョン内)ユーザーの近くで処理
耐障害性1AZ障害までリージョン全体障害まで
コスト

TrueTimeとは

Google Spannerが使う独自の時刻管理API。GPS受信機と原子時計を組み合わせて数マイクロ秒精度の時刻を保証します。これにより物理的に離れたサーバー間でも「どのトランザクションが先に起きたか」を確実に判定できます。


歴史と背景

  • 2012年 — Google Spanner論文を発表(「外部整合性を持つグローバルDB」)
  • 2017年 — Google Cloud Spannerとして一般公開
  • 2015年 — CockroachDB創業(Google Spanner元エンジニアが設立)
  • 2019年 — CockroachDB v19でマルチリージョン機能が成熟
  • 2021年 — YugabyteDB 2.xでシリアライズ可能分離レベルをマルチリージョン対応

グローバル分散の仕組み

グローバル分散DB(Spannerイメージ) 地球(論理的) 東京 リージョン バージニア リージョン ロンドン リージョン Paxos/Raftコンセンサスで全リージョン整合 どのリージョンに書いても全世界に整合性が伝播

関連する規格・RFC

規格内容
Google Spanner論文 (2012)「Spanner: Google’s Globally-Distributed Database」
Paxos / Raft分散合意アルゴリズム。グローバル分散DBの基盤
Calvin論文 (2012)決定論的トランザクション処理の先行研究

関連用語