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