【きゃっぷていり】
CAP定理 とは?
💡 分散システムの「3つのうち2つしか選べない」法則
📌 このページのポイント
なぜ3つ同時に満たせないの?
実際にはどう選ぶの?
結果整合性(Eventual Consistency)って?
「今すぐは一貫していないけど、しばらく待てばそのうち一貫する」という保証。DynamoDBやCassandraがこのモデル。書き込み後にレプリカへの伝搬に数ミリ秒〜数秒かかる間、古いデータが読めることがある。多くのWebアプリケーションではこの程度の遅延は問題にならないよ
CAP定理は批判もある?
あるよ。「3つから2つ選ぶ」という説明は単純化しすぎで、実際にはCとAの間にグラデーションがある。Martin Kleppmannは「分断が起きている間の動作」と「通常時の動作」を分けて考えるべきと指摘している。PACELC定理(CAPの拡張)では「分断なし時のLatencyとConsistencyのトレードオフ」も加味しているよ
まとめ:ざっくりこれだけ覚えればOK!
「CAP定理」って出てきたら「分散DBはC・A・Pの3つを同時に全部は満たせない」と思えればだいたいOK!
📖 おまけ:英語の意味
「CAP Theorem (Brewer's Theorem)」 = CAP定理(ブリューワーの定理)
💬 2000年にEric Brewerが予想し、2002年に証明された。分散システム設計の基本定理だよ