166

NoSQLやデータグリッドなどに関するさまざまなスピーチで結果整合性についてよく耳にします。結果整合性の定義は多くのソースで異なるようです(具体的なデータストレージに依存する場合もあります)。

具体的なデータストレージとは関係なく、一般的な用語で結果整合性とは何かを簡単に説明できますか?

4

7 に答える 7

270

結果整合性:

  1. 天気予報を見て、明日は雨が降ることを知りました。
  2. 明日は雨が降るでしょう。
  3. あなたの隣人は彼の妻に明日は晴れると言っています。
  4. あなたはあなたの隣人に明日雨が降るだろうと言います。

結局、すべてのサーバー(あなた、私、あなたの隣人)は真実を知っています(明日は雨が降るでしょう)が、その間にクライアント(彼の妻)は彼女が尋ねたにもかかわらずそれが晴れると思って去りました1つ以上のサーバー(あなたと私)がより最新の値を持っていた後。

厳密な一貫性/ACIDコンプライアンスとは対照的に:

  1. 銀行の残高は50ドルです。
  2. $100をデポジットします。
  3. どこのATMからでも照会された銀行の残高は150ドルです。
  4. あなたの娘はあなたのATMカードで$40を引き出します。
  5. どこのATMからでも照会された銀行の残高は、110ドルです。

あなたの残高は、その瞬間にあなたの口座で行われたすべての取引の実際の合計以外のものを反映することはできません。

非常に多くのNoSQLシステムに結果整合性がある理由は、事実上すべてのシステムが分散するように設計されており、完全に分散されたシステムでは、厳密な一貫性を維持するための超線形オーバーヘッドがあります(つまり、速度が低下し始める前にしかスケーリングできません)ダウンし、スケーリングを維持するには、問題に対して指数関数的に多くのハードウェアを投入する必要があります)。

于 2012-04-09T19:25:06.857 に答える