BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Google Cloud Platformがデータストアの強い一貫性を推奨

Google Cloud Platformがデータストアの強い一貫性を推奨

原文(投稿日:2018/02/05)へのリンク

読者の皆様へ: あなたのリクエストに応じて、大切な情報を見逃すことなく、ノイズを減らす機能を開発しました。お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう


複雑性と潜在的なバグを取り除くアプリケーションプラットフォームの開発は、基盤として強い一貫性を持ったデータ層を持つことから始まる。Google Cloud Platform Blogの先日の記事でMike Curtiss氏が概説した前提は、まさにそれだ。“別の表現をすれば、データセット全体を対象とするトランザクションと一貫性をデフォルトで提供するデータストアの存在は、より少ないバグ、より少ない頭痛、メンテナンスの容易なアプリケーションコードを実現するのです”、と氏は言う。

並行データアクセスを扱うシステムの経験がある開発者ならば、Curtiss氏の指摘はよく理解できるはずだ。銀行口座間での資金の移動は、外部一貫性(external consistency)に関して教科書で取り上げられる例のひとつである。しかしながら、アプリケーションロジックでこの一貫性を解決する方法は、バグや複雑性の増大といった予期しない問題を発生させることが多い。それと比較して、デフォルトで外部一貫性を提供するシステムではアプリケーションロジックの簡略化が可能であるため、より堅牢なシステムが可能になるだけでなく、開発チームの生産性の向上も期待できる。

GoogleのリレーショナルデータベースサービスであるCloud Spannerは、基本機能として強い一貫性を備えている。しかしながら、Spannerの持つ水平拡張性と強い一貫性の組み合わせには、CAP定理に反しているのではないかという指摘にも結び付いている。

ブログ記事では、さまざまなデータストアで使用されている一貫性レベルを取り上げて、そのいくつかを比較している。さらに氏は、外部一貫性のパフォーマンスへの影響によるコストの不当な増加など、一般的な前提についても反論を試みている。しかしながらSpannerは、当初から一貫性を持った読み取り機能を提供する目的で開発されているため、ほとんどのデータストアでは受け入れざるを得られないようなこの制限を回避することに成功している。

Soannerの持つ能力のプロモーションという意図を持つ一方で、この記事では、一般的な目的でのガイダンスも提供している。最初は、可能であれば常に、一貫性として“Strong Read”を使用することだ。“Strong Read”が利用できない状況では、妥協が認められる限りにおいて、“Bounded Stateless”を使用するのが適切なフォールバックとなる。“Strong Write”は“Strong Read”よりもさらに重要だ。システムが“Strong Write”を提供していない場合、アプリケーション開発者に余分な負担がかかると同時に、データ矛盾の可能性というリスクも潜在的に発生する。

Google Cloud PlatformではCloud Spanner外部一貫性に関して、さらに詳しい情報が提供されている。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT