断链时的两难
目录 · 2
分区之下,不能既要正确、又要通畅
商号的账本一式三份,分藏三座远城。一日地震,中间那座城的驿路断了,三城一时对不上话。总号面临两难:要么照旧用另两城的账本作答——可那座断联的城里或许刚存进一笔钱没传过来,答了便是旧数,要出错;要么干脆贴出暂停对账,等三城重连再算——账是准了,可客商眼巴巴等着,生意全停了。断联的那一刻,总号发现:自己没法既要永远不错,又要永远不停。它最终选了后者,赌那笔迟到的钱不大。
揭示
这则故事想说的概念是:CAP 定理(CAP Theorem)。
英文定义(CAP Theorem):The CAP theorem states a distributed system cannot simultaneously guarantee consistency, availability, and partition tolerance; under a network partition it must trade C for A or vice versa.
它属于哪个领域:分布式系统(Distributed Systems)
CAP 定理是分布式数据库设计的根基,指导一致性与可用性的权衡。
故事里的隐喻对应什么
- 断链时二选一 → 分区下一致性 vs 可用性
- 用旧值继续答 vs 拒答等齐 → CP 与 AP 的取舍
- 断联时不能既要准又要通 → CAP:分区下 C 与 A 不可兼得