# Spanner [[Google]] が開発・運営するグローバル分散 SQL データベース。[[TrueTime]] API を活用して **外部一貫性(厳密直列化可能性)** を実現する世界初のシステム。現在は Google Cloud の マネージドサービス **Cloud Spanner** として提供されている。 ## 主要特性 - **TrueTime**: GPS と原子時計で時刻不確実性区間を返す API。commit wait でタイムスタンプ順序を保証 - **外部一貫性**: 全トランザクション間の実時間順序とタイムスタンプ順序が一致 - **Paxos on 2PC**: Paxos グループ上に 2PC を組み合わせた RW トランザクション - **専用ハードウェア要件**: TrueTime は GPS/原子時計を必要とし、汎用クラウド環境では利用不可 ## CockroachDB との比較 CockroachDB([[@2020__SIGMOD__CockroachDB - The Resilient Geo-Distributed SQL Database]])は Spanner の代替として以下の違いを持つ: | 観点 | Spanner | CockroachDB | |---|---|---| | 一貫性保証 | 厳密直列化可能性(外部一貫性) | 単一キー線形化可能性のみ | | クロック機構 | TrueTime(専用HW) | HLC(NTP / Amazon Time Sync) | | コミット方式 | commit wait(最大オフセット待機) | Read Refresh(楽観的・リトライ可能性あり) | | ハードウェア要件 | 専用(GPS/原子時計) | 汎用クラウドサーバー | | YCSB スループット | 多くのワークロードで CRDB より低い | 多くのワークロードで高い | | レイテンシ | commit wait により高い | 低い(特に低コンテンション時) | YCSB ベンチマークでは CRDB が多数のワークロードで Spanner を上回るスループットと低レイテンシを示した(YCSB A を除く)。(Source: [[@2020__SIGMOD__CockroachDB - The Resilient Geo-Distributed SQL Database]] §6.3) ## 関連 - 論文: [[@2013__TOCS__Spanner - Google's Globally Distributed Database]] - 比較: [[@2020__SIGMOD__CockroachDB - The Resilient Geo-Distributed SQL Database]] - 概念: [[外部一貫性]] / [[TrueTime]] / [[分散トランザクション]] - 所属: [[Google]] ## 出典 - [[@2013__TOCS__Spanner - Google's Globally Distributed Database]](OSDI 2012 / TOCS 2013) - [[@2020__SIGMOD__CockroachDB - The Resilient Geo-Distributed SQL Database]](SIGMOD 2020 §6.3 / §8)