IT用語帳
PD-Dデータベース · データベース応用

CAP定理

CAP Theorem

きゃっぷていり

分散システムでは、一貫性(Consistency:どのノードからも最新の同じデータが読める)、可用性(Availability:すべての要求に応答する)、分断耐性(Partition tolerance:ネットワークが分断されても動作を続ける)の3つを同時に完全には満たせないという定理。E.ブリューワーが提唱した。分断は避けられないので、実際には分断の発生時に一貫性と可用性のどちらを優先するかを設計で選ぶ。

共有:

Related

他の資格での定義

APCAP定理

分散データベースシステムにおいて、一貫性(Consistency)、可用性(Availability)、分断耐性(Partition Tolerance)の3つの特性を同時にすべて満たすことは不可能であるという定理。システム設計時に、どの2つを優先するかのトレードオフの判断に用いられる。

SACAP定理

分散システムにおいて、一貫性(Consistency)、可用性(Availability)、分断耐性(Partition tolerance)の3つを同時に満たすことは不可能であるという定理。システム設計時にどの2つを優先するかを選択する必要がある。

DBCAP定理

分散システムにおいて、一貫性(Consistency)、可用性(Availability)、分断耐性(Partition Tolerance)の3つを同時に満たすことはできないという定理。NoSQLデータベースの設計方針を理解する上で重要な概念。

PD-SCAP定理

分散データベースシステムにおいて、一貫性(Consistency)、可用性(Availability)、分断耐性(Partition Tolerance)の3つの特性を同時にすべて満たすことは不可能であるという定理。システム設計時に、どの2つを優先するかのトレードオフの判断に用いられる。

A-1CAP定理

ネットワークで結ばれた分散システムでは、一貫性(Consistency)、可用性(Availability)、分断耐性(Partition tolerance)の3つの性質を同時にすべて満たすことはできないという定理。ネットワークの分断は避けられないため、分断が起きたときに一貫性と可用性のどちらを優先するかが設計の判断となる。

Past Exams

過去問での出題

過去問で 5 回出題(データベーススペシャリスト試験 4・応用情報技術者試験 1)。うち 2 回は用語そのものを問う問題です。

出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「用語を問う問題」は、この用語の説明や特徴そのものを問う問題です。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。

Related

関連キーワードの用語

PD-Dアベイラビリティゾーン(AZ)

1つのリージョンの中で、電源、冷却、ネットワークを独立させ、互いに物理的に離して設置された1つ以上のデータセンターの集まり。AZ間は低遅延の回線で結ばれ、1つのAZが災害や障害で停止しても他のAZで処理を続けられるよう、システムを分散配置する単位となる。

PD-DACID特性

トランザクションが備えるべき4つの性質。全部実行されるか全く実行されないかの原子性(Atomicity)、実行前後でデータの整合性が保たれる一貫性(Consistency)、同時に実行される他のトランザクションの影響を受けない独立性(Isolation)、確定した結果が障害でも失われない耐久性(Durability)である。DBMSはコミットメント制御、同時実行制御、ログによる障害回復でこれらを実現する。

PD-Dレプリケーション

データベースの内容を別のサーバやサイトに複製し、更新を継続的に反映して同じ内容に保つ仕組み。更新を受け付ける主サーバと複製先の構成のほか、複数のサーバで更新を受け付けるマルチマスタ構成もあり、障害時の切替えによる可用性の向上と参照処理の分散に使う。更新の反映を待つ同期型は整合性が高いが応答が遅く、待たない非同期型では複製先に反映の遅れが生じる。

IPクラスタ

複数のコンピュータを連携させて1つのシステムとして動作させる構成。高可用性クラスタ(障害対策)や負荷分散クラスタ(性能向上)などがあり、信頼性と処理能力を向上させる。

SG冗長構成

システムの構成要素を多重化し、一部に障害が発生しても全体が停止しないようにする構成。サーバ、ネットワーク、ストレージなどを二重化することで、可用性と信頼性を向上させる。

FEカオスエンジニアリング

本番環境やそれに近い環境で意図的に障害を発生させ、システムが耐えられるかを検証して弱点を前もって見つけ、改善する手法。サーバの停止やネットワークの遅延などを計画的に起こし、障害に強いシステムを目指す。