ACIDとCAP定理の一貫性は同じですか?


18

私の理解では、ACIDの一貫性がデータの整合性を保証しています。

ただし、CAPの一貫性により、分散システムでデータをすばやく表示できます。

つまり、同じ概念ではないということですか?

回答:


18

データの範囲のため、実際には同じではありません

  • 原子性
  • 一貫性:適用されたすべてのデータ変更により、すべてのDB接続のデータの一貫したビューが提供されます
  • 分離
  • 耐久性

キャップ

  • 一貫性(すべてのノードが最終的な一貫性を介して同じデータを持っている)
  • 可用性
  • Partition-Tolerance:システムの一部の任意のメッセージ損失または障害にもかかわらず、システムは動作し続けます

あらすじ

  • ACIDは個々のノードのデータ一貫性に対処します
  • CAPはクラスター全体のデータの一貫性に対処します

1
最終的に。ローランド、最終的には大胆なはずだった。それは契約破りです:)明けましておめでとうございます!
フィリ

3

CAP定理:分散システムは2つのサービス(可用性とパーティション許容値など)を提供できますが、3つは提供できないことを指定します。たとえば、サービスが可用性とパーティショニングを提供する場合、すぐにではなく一貫性を確保できないため、最終的な一貫性が使用され、インフラストラクチャが一貫性と一貫性の間で変化することができますが、ある時点で遅かれ早かれ、インフラストラクチャは一貫します、最終的に一貫性をもたらします。クラウドサービスはこのような方法で機能し、AmazonのSimple DBは結果整合性を使用します。

ACID機能は通常、リレーショナルDBに適用されます。ACIDを分散方式(分散DB)で適用する場合、ACIDは2PC(2フェーズコミット)を使用してパーティション間で一貫性を強制します。ただし、ACIDは一貫性とパーティション化を提供するため、CAPの定理を(分散環境)に適用すると、可用性が損なわれます。

このため、BASE(基本的に利用可能、ソフト状態、最終的に一貫性)が使用され、ACIDでは取得できないレベルのスケーラビリティを提供できます。

お役に立てれば。


-1

CAP定理の一貫性に関して、Julian Brownは彼の記事(http://www.julianbrowne.com/article/brewers-cap-theorem)に次のように書いています

一貫性のあるサービスは完全に動作するか、まったく動作しません。ギルバートとリンチは、厳密に言えばデータベーストランザクションの理想的なプロパティに適用されるACIDのCであり、データが永続化されないことを意味するので、厳密に言えば技術的に理にかなっている特定のプリセット制約を解除します。しかし、同じデータの複数の値が許可されていないという分散システムの事前設定の制約と考えると、抽象化のリークが塞がれていると思います(さらに、Brewerがアトミックという言葉を使用した場合、それはAAPと呼ばれます定理と私たちはそれを発音しようとするたびに病院にいる​​だろう)。

したがって、CAP のCはACID のAに対応します。

ギルバートとリンチとともに彼は記事「セスギルバートとナンシーリンチ:ブリューワーの推測と一貫性のある、利用可能なパーティショントレラントWebサービスの実現可能性」を参照しています。


1
CAP一貫性は分散システムに適用されますが、ACIDはシステムアーキテクチャのそのレベルから自身を抽象化します。CAPの一貫性は、ACID原子性の実装に必要な場合がありますが、同じものではありません。
ムスタッチョ

BrewerがACIDに関連してCAPの定理を自己主張しているので(people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Page 2&3)、どちらも。
white_gecko
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.