【くらうどすぱなー】
Cloud Spanner(クラウドスパナー) とは?
最終更新:
💡 分散配置と強整合性を組み合わせるGoogleのデータベース
Googleが提供するグローバル分散リレーショナルデータベース。既定の読み取りでは強整合性を提供し、データを分散して処理能力を拡張できる。
📌 このページのポイント
- 複数リージョンに分散配置できる。通信距離や読み取り方式によって遅延は変わる
- SQLに対応したリレーショナルデータベースなので、既存のRDBの知識を活かせる
- 既定のSerializable分離レベルでは、TrueTimeなどを使って実時間の前後関係に沿うトランザクション順序を保証する
- データの分割や複製をサービスが管理する。構成・スキーマ・権限の設計は利用者が行う
どんなデータベース?
世界中で必ず同じ残高が見える?
既定のstrong読み取りは、読み取り開始前に確定した更新を反映するよ。ただし開始時刻が異なる読み取りは、間に更新があれば違う値になり得る。stale読み取りを指定すると、過去の時点の整合したデータを読むんだ。
TrueTimeだけで矛盾を防ぐの?
TrueTimeによる時刻情報と、複製間の合意などを組み合わせるよ。既定のSerializable分離レベルでは、実時間の前後関係に沿った順序で取引が実行されたように見える。別の分離レベルにも同じ保証があるとは限らないんだ。
ネットワークが切れても書き込める?
書き込みには投票する複製の過半数の合意が必要だよ。過半数に届かない側では書き込みを続けられない。CAP定理を回避する仕組みではなく、強整合性のために処理できない場合もあるんだ。
導入すると運用を全部任せられる?
データの分割や複製の管理は任せられるけれど、スキーマ・権限・容量などは設計が必要だよ。地域間の通信は遅延に影響するし、費用も構成と利用量で変わる。移行前に自分の処理で検証しよう。
📖 おまけ:英語の意味
「Cloud Spanner」 = クラウドスパナー(スパナ→工具のスパナ)
💬 spannerは英語で工具のスパナ。ここではGoogleの分散データベースの製品名だよ