CAP と PACELC で考える分散ストレージのトレードオフ¶
要約¶
分散ストレージの設計は CAP 定理(一貫性・可用性・分断耐性)だけでなく、PACELC(平常時のレイテンシ vs 一貫性)でも考える必要がある。クォーラム設定(W+R>N)で一貫性と可用性のバランスを調整でき、ユースケースに応じた設計判断が重要。
ポイント¶
- CAP定理: 分断耐性(P)は前提なので実質 C(一貫性)か A(可用性)の二択
- PACELC: 分断時(P→A/C の選択)に加え、平常時(Else→Latency/Consistency の選択)にも常にトレードオフがある
- クォーラム: W+R>N の設定で調整可能。合意ノード数↑ = 一貫性↑・可用性↓・レイテンシ↑
- 実務での使い分け:
- 閲覧数・いいね数など多少のズレが許容できる → 可用性優先
- 残高・在庫・予約確定など → 一貫性優先
- 選択は設計初期に決め文書化する。後から変えると影響範囲が大きい
関連概念¶
- 結果整合性 (Eventual Consistency)
- 読み取り修復 (Read Repair)
- ヒント付きハンドオフ (Hinted Handoff)