【くらうどすぱなー】

Cloud Spanner(クラウドスパナー) とは?

最終更新:
💡 分散配置と強整合性を組み合わせるGoogleのデータベース

Googleが提供するグローバル分散リレーショナルデータベース。既定の読み取りでは強整合性を提供し、データを分散して処理能力を拡張できる。

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

参考資料

← 用語集にもどる