CAP定理 - 可用性と分断耐性 質問する

CAP定理 - 可用性と分断耐性 質問する

CAP の「可用性」(A) と「パーティション許容度」(P) を理解しようとしましたが、さまざまな記事の説明を理解するのが難しいと感じました。

A と P は一緒に使用できるような気がします (そうではないことはわかっていますが、それが理解できない理由です)。

簡単に説明すると、A と P とは何ですか。また、それらの違いは何ですか。

ベストアンサー1

一貫性とは、クラスター全体でデータが同じであることを意味します。そのため、どのノードからでも読み取りまたは書き込みを行って、同じデータを取得できます。

可用性とは、クラスター内のノードがダウンした場合でもクラスターにアクセスできることを意味します。

パーティション耐性とは、2 つのノード間に「パーティション」(通信の中断)が発生した場合でも(両方のノードが稼働しているが通信できない)、クラスターが機能し続けることを意味します。

可用性とパーティション耐性の両方を実現するには、一貫性をあきらめる必要があります。マスター マスター セットアップに X と Y という 2 つのノードがあるとします。ここで、X と Y 間のネットワーク通信が途切れているため、更新を同期できません。この時点で、次のいずれかを実行できます。

A) ノードが同期しなくなることを許可する(一貫性を放棄する)、または

B) クラスターが「ダウン」している(可用性を放棄している)と見なす

利用可能なすべての組み合わせは次のとおりです。

  • CA - すべてのノードがオンラインである限り、データはすべてのノード間で一貫しており、どのノードからでも読み取り/書き込みが可能で、データが同じであることを確認できますが、ノード間でパーティションを作成すると、データは同期されなくなります (パーティションが解決されても再同期されません)。
  • CP - データはすべてのノード間で一貫しており、ノードがダウンすると使用できなくなるため、パーティション耐性が維持されます (データの同期が解除されるのを防ぎます)。
  • AP - ノードは相互に通信できない場合でもオンラインのままであり、パーティションが解決されるとデータを再同期しますが、すべてのノードが同じデータを持つことは保証されません (パーティション中またはパーティション後)

注目すべきはCAシステムは実質的に存在しない(一部のシステムではそう主張している場合でも)。

おすすめ記事