CAP定理
「以下の3要素を同時に満たすことができない」という考え
Consistency:一貫性
∟誰かがデータを更新したら、その後は必ず更新後のデータが参照できること
Availability:可用性
∟クライアントは必ずデータにアクセス可能であること
(データが壊れたり、ロック待ちにならないこと)
Partition Tolerance:ネットワーク分断耐性
∟データを複数サーバに分散して保管できること
(データが複数のサーバに分散されており、1つサーバに障害が発生し、データが破損した場合でも、別サーバによりデータが参照可能であること)
単一サーバで動作するデータベース→ ネットワーク分断耐性がない
分散データベース→可用性がない
DNS、NTP、HTTPキャッシュなど→一貫性がない
・クラウドサービスにおいてネットワーク分断耐性は必須要件
・CAPすべてを満たすことはできないため、可用性の一部と一貫性の多くを妥協した(BASE特性)
BASE特性とは
Basically Available
∟可用性が高く常にサービスが利用可能(サーバ台数が多く頻繁に故障するがサービスは再実行して維持する)
Soft-State
∟ステータスは厳密ではない(ここで一貫性の多くを妥協)
Eventual Consistency
∟最終的には一貫性を担保する。結果整合性。(1サーバで更新されたあとに同期することで時間をおいてから一貫性が保たれる)
参照元
https://atmarkit.itmedia.co.jp/ait/articles/1703/01/news204_2.html