NoSQLやデータグリッドなどに関するさまざまなスピーチで結果整合性についてよく耳にします。結果整合性の定義は多くのソースで異なるようです(具体的なデータストレージに依存する場合もあります)。
具体的なデータストレージとは関係なく、一般的な用語で結果整合性とは何かを簡単に説明できますか?
NoSQLやデータグリッドなどに関するさまざまなスピーチで結果整合性についてよく耳にします。結果整合性の定義は多くのソースで異なるようです(具体的なデータストレージに依存する場合もあります)。
具体的なデータストレージとは関係なく、一般的な用語で結果整合性とは何かを簡単に説明できますか?
結果整合性:
結局、すべてのサーバー(あなた、私、あなたの隣人)は真実を知っています(明日は雨が降るでしょう)が、その間にクライアント(彼の妻)は彼女が尋ねたにもかかわらずそれが晴れると思って去りました1つ以上のサーバー(あなたと私)がより最新の値を持っていた後。
厳密な一貫性/ACIDコンプライアンスとは対照的に:
あなたの残高は、その瞬間にあなたの口座で行われたすべての取引の実際の合計以外のものを反映することはできません。
非常に多くのNoSQLシステムに結果整合性がある理由は、事実上すべてのシステムが分散するように設計されており、完全に分散されたシステムでは、厳密な一貫性を維持するための超線形オーバーヘッドがあります(つまり、速度が低下し始める前にしかスケーリングできません)ダウンし、スケーリングを維持するには、問題に対して指数関数的に多くのハードウェアを投入する必要があります)。