SPONSORED

CAP定理(きゃっぷていり)

最終更新:2026/4/25

CAP定理は、分散システムにおいて整合性、可用性、分断耐性の3要素を同時に満たすことは不可能であるとする理論である。

別名・同義語 Brewerの定理CAPの三角形

ポイント

CAP定理は、分散システムの設計におけるトレードオフを理解するための重要な指針となる。システム要件に応じて、どの要素を優先するかを決定する必要がある。

CAP定理とは

CAP定理(CAP theorem)は、分散コンピューティングにおける基本的な制約を表す理論であり、Eric Brewerによって提唱された。この定理は、分散システムが以下の3つの特性を同時に満たすことはできないと述べている。

  • 整合性 (Consistency): 複数のノードでデータが更新された場合、すべてのノードで同じデータが見えること。つまり、どのノードからデータにアクセスしても、常に最新の状態が反映されている必要がある。
  • 可用性 (Availability): システムが常に稼働しており、リクエストに対して応答できること。一部のノードがダウンしても、システム全体が停止しないことが求められる。
  • 分断耐性 (Partition Tolerance): ネットワークの分断が発生した場合でも、システムが正常に動作し続けること。ノード間の通信が途絶えても、データの整合性を保ちながら処理を継続できる必要がある。

CAP定理によれば、これらの特性のうち、2つしか同時に満たすことができない。例えば、整合性と可用性を優先する場合、分断耐性は犠牲になる。逆に、可用性と分断耐性を優先する場合、整合性は犠牲になる。

CAP定理のトレードオフ

  • CA (整合性と可用性): シングルマスター構成データベースなど。分断が発生するとシステム全体が停止する可能性がある。
  • CP (整合性と分断耐性): ZooKeeperやetcdなどのコンセンサスアルゴリズムを使用するシステム。可用性は犠牲になる可能性がある。
  • AP (可用性と分断耐性): CassandraやDynamoDBなどのシステム。整合性は最終的に整合性(eventual consistency)となる。

CAP定理の重要性

CAP定理は、分散システムの設計者が、システムの要件に応じて適切なトレードオフを選択するための重要な指針となる。システムの特性を理解し、適切なアーキテクチャを選択することで、信頼性の高い分散システムを構築することができる。

SPONSORED