web-dev-qa-db-ja.com

ACIDとCAPの定理の整合性は同じですか?

私の理解では、ACIDの一貫性はデータの整合性を保証することです。

ただし、CAPの一貫性は、分散システムでデータをすばやく表示できることを意味します。

つまり、同じコンセプトではないのですか?

19
Yang Xia

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

[〜#〜]酸[〜#〜]

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

[〜#〜]キャップ[〜#〜]

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

あらすじ

  • ACIDは個々のノードのデータの整合性に対処します
  • CAPはクラスター全体のデータの整合性に対応します
18
RolandoMySQLDBA

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

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

このため、[〜#〜] base [〜#〜](基本的に利用可能、ソフト状態、最終的には一貫性のある)が使用され、 ACIDでは得られないスケーラビリティ。

お役に立てれば。

3
Stefan M