グローバル分散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でシリアライズ可能分離レベルをマルチリージョン対応
グローバル分散の仕組み
関連する規格・RFC
| 規格 | 内容 |
|---|---|
| Google Spanner論文 (2012) | 「Spanner: Google’s Globally-Distributed Database」 |
| Paxos / Raft | 分散合意アルゴリズム。グローバル分散DBの基盤 |
| Calvin論文 (2012) | 決定論的トランザクション処理の先行研究 |
関連用語
- データウェアハウス — グローバルデータ分析基盤としての活用
- Aurora・Aurora Serverless — Aurora Global Databaseで複数リージョンに対応
- NoSQL — グローバル分散DBの前段階的なアプローチ