メインコンテンツへ
データベースデータベース応用

CAP定理に関する記述として、最も適切なものはどれか。

ア.CAP定理は中央集権データベースに関する定理で、分散システムには適用されない。
イ.CAP定理によればC・A・Pの3つすべてを同時に完全に満たす分散システムを設計することが可能である。
ウ.分散システムでは Consistency(一貫性:全ノードが同時刻に同じデータを返す)、Availability(可用性:全要求に応答する)、Partition tolerance(分断耐性:ネットワーク分断中も動作継続)の3つを同時に完全に満たすことはできず、ネットワーク分断が現実に発生する以上Pは前提として、残るCとAのどちらを優先するかという選択になる(CP型 or AP型)。正解
エ.CAP定理はCacheing、API設計、Performanceの3要素のトレードオフを示す。

解説

CAP定理は分散システムの「同時に3つは選べない、2つまで」という三角ジレンマ。ネットワーク分断は現実に避けられないので、「分断時に一貫性を取るか、可用性を取るか」を最初に決める設計の根幹となります。

なぜ ウ が正解か

ウが正解。CAP定理(Brewerの定理、2000年提唱)は分散システム設計の根本原理。ネットワーク分断(Partition)が現実に発生する以上、分断中は一貫性(Consistency=どのノードでも同じ最新データ)か可用性(Availability=応答を返し続ける)のどちらかを諦める必要がある。CP型例:HBase、MongoDB(強整合モード)、Zookeeper。AP型例:Cassandra、DynamoDB、CouchDB(結果整合性)。RDBMSは古典的にはCA寄りだが分散環境では分断時の選択が必要。

なぜ ア は間違いか

CAP定理はまさに分散システム向けの定理。中央集権DBには適用されない(Partitionが存在しないため)が、分散システムが対象という関係。

なぜ イ は間違いか

CAP定理の本質はまさに「3つすべての同時達成は不可能」。同時達成可能なら定理自体が成立しない。

なぜ エ は間違いか

C・A・PはConsistency・Availability・Partition toleranceであり、Cache・API・Performanceではない。頭字語の意味を取り違えた誤答。

出典: AI生成問題(学習用)