本文へスキップ

CAP定理とは?

きゃっぷていり

「定理」の用語まとめを見る

CAP定理とは、分散データベースシステムは一貫性・可用性・分断耐性の3つを同時にすべて満たすことはできないと主張するコンピュータ科学の定理です。

CAP定理(CAP Theorem)は、2000年にエリック・ブリューワーが提唱し、2002年にギルバートリンチが数学的に証明したコンピュータ科学の定理です。分散システムにおいて次の3つの性質を同時にすべて保証することは不可能であると述べています。

  • 一貫性(Consistency):すべてのノードが常に同一の最新データを返す
  • 可用性(Availability):すべてのリクエストに対して必ずレスポンスが返る(タイムアウトなし)
  • 分断耐性(Partition Tolerance):ネットワーク分断(通信障害)が起きてもシステムが動き続ける

実際のインターネット環境ではネットワーク障害は避けられないため、分断耐性(P)は事実上必須となります。その結果、設計者は「一貫性と可用性のどちらを優先するか」という選択を迫られます。

この選択に基づくシステム分類は次の通りです。

  • CP型(一貫性+分断耐性):分断時は可用性を犠牲にする。例:HBase・ZooKeeper
  • AP型(可用性+分断耐性):分断時は一貫性を緩め常に応答する。例:Cassandra・DynamoDB・CouchDB

CAP定理はNoSQLデータベースの設計思想を理解する上で基礎となる概念であり、マイクロサービスアーキテクチャやクラウドシステムの設計者が必ず考慮する原則です。なお、より現実的な指針として「PACELC定理」も提唱されています。

使い方・例文

「なぜDynamoDBは書き込み後すぐに読み取ると古いデータが返ることがあるのか」を説明するとき、CAP定理のAP選択(可用性優先)という文脈で語られます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語