BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 結果整合性に代わるもの

結果整合性に代わるもの

原文(投稿日:2014/06/18)へのリンク

結果整合性(Eventual Consistency)は,CAP定理から導き出される原則に沿って設計された分散システムを特徴付けるものだ。トランジェントな分断障害に耐え得るシステムを実現するだけでなく,ビジネス領域において活用可能なレベルの非同期性(asynchronicity)を現実のものとする。しかしながら,すべてのシステムが同じ厳密さの分断耐性(Partition Torerance)を必要としてはいない上に,実際には非同期性がビジネスモデル上の制約となる場合もあり得るのだ。

ここ最近,結果整合性に関する議論が見聞されるようになってきた。Don’t Settle for Eventual Consistency(結果整合性に満足してはいけない)”と題された計算機学会の論文では筆者のWyatt Lloyd氏らが,オペレーションの順序が重要な,強い時間一貫性(Temporal Consistency)を要するシステムでは,結果整合性は適切な選択ではない,という議論を展開している。事実,結果整合性を定義する概念それ自体が,ビジネスに致命的な損失をもたらすこともあり得るのだ。例えば,順序のあるオペレーションを含んだメッセージが地理的に離れたノード間で複製されて,その順序が保証されないようなことがあれば,システムの意図を完全に具体化せず,他ノードによるプロセス結果も反映されないイベントの連鎖が起きる可能性がある。

これに対して,因果一貫性(Causal Consistency)の規定する分散モデルでは,それぞれのメッセージが順序の保証されたコンテキスト内で明示的に配信される。一貫性に対するこの視点は,分断耐性とは対照的なもので,分散システム設計における現代的な知見をまったく無視しているようにも思える。しかしながら,このような優先度の転換は,さまざまなシステムに固有の要件に対して,より洗練されたアプローチと思慮深い設計を示すものでもあるのだ。

“この高々2つしかない優先度の選択に直面すると,多くのシステムは強い一貫性を犠牲にして,可用性と分断耐性を確保する道を選択します。それ以外の - 例えば金銭を扱うような - システムは,可用性ないし分断耐性を犠牲にして,アプリケーション構築の基礎として必要な,強い一貫性を達成しようとします。” - Lloyd, 他

因果一貫性は結果整合性に代わるものではない。整合性を妥協の余地のない要件とするシステムにおける,設計上の考慮事項なのだ。因果一貫性と結果整合性とのトレードオフは絶対的に決められるものではなく,リスクと影響の度合いによって測られるべきものなのだ。システムに適したモデルの選択には,システムの目的や,システムが許容可能な障害の形式を反映する必要がある。

 

 

 

この記事に星をつける

おすすめ度
スタイル

BT