NoSQLの3礎石:キャップ、ベース、結果整合性
5.4.1キャップ理論(帽子の理論):
一貫性:一貫性の
可用性:可用性
分割耐性:分割耐性
可用性:可用性
分割耐性:分割耐性
理想的な目標は、3つのCAP性を達成しながら、分散ファイルシステムを設計することであるが、それは唯一の3つのうち2つ、不可能証明しました。
1)インスタンスと引き換えに犠牲一貫性の状況:
状況が広がることができない場合はp2はV2(保証可用性)のコピーを読んで即時を要求する場合、発生し、データの不整合(犠牲一貫性)。
V2のコピー上のデータ伝送を読み込む場合は、P1 P2を待ち(一貫性を確保するために)、それは(使いやすさを犠牲にする)の期間となっています。
:2)キャップ面の問題は、以下のオプションがあり
CA(従来のデータベース:MySQLの)
CP(HBaseの)
AP(カサンドラ)を
別の設計原理の理論CAP中3)の異なる製品
5.4.2 BASEと結果整合性:
全称:基本的に利用可能な、柔らかい状態和結果整合性
ACIDの4つのプロパティのリレーショナルデータベースを追求。
NoSQLデータベース追求BASE特性;
1)BASE:
結果整合性:弱い一貫性の特殊なケース
そこの時間の矛盾の期間であってもよいが、それは最終的に合意に達するだろう。
2)最終的な一貫性を分けることができます
。
因果一貫性:
データ項目を更新プロセス通知プロセスBは、Bのフォローアップ訪問が書かれた最新の値を取得することができます。しかし、C及びDが通知されていない、それだけで、最終的にアクセスすることができますが、すぐにアクセスすることはできません。
2.読むには、私たち自身の整合性を書きました
3 ..モノトーン読取り一貫
4.セッションの一貫性
4.セッションの一貫性
5.単調な書き込み一貫性
3)一貫性の様々なタイプを実装します。
最低保証の強い一貫性:R + W = N + 1
对于分布式系统来说,为了保证高可用性,比如HDFS,一般设置 副本数量N>=3
(实例)