知识卡片
CAP只在分区时二选一
内容
CAP原理常被误读为一致性、可用性、分区容忍三者只能选二的静态权衡,但准确表述是:系统被分区时只能在一致性(查询可能报错)和可用性(查询可能返回陈旧结果)间二选一;未分区时二者可以同时满足。速度层的增量算法设计前必须先明确自己落在哪一分支。
参考来源
- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第12章《实时视图》"12.3 增量计算的挑战"一节(源文件:_epub-src/OEBPS/Text/093.xhtml)
- 结论依据:原文明确指出"CAP通常被解释为'你最多可以有一致性、可用性和分区容忍性中的两个特性'"是一种误导性解释,并给出"正确表述CAP原理的方式是'当分布式数据系统被分区时,它可以是一致性的或可用性的,但不能两者兼而有之'"的更正,说明该原理专门描述分区发生时的行为,而非静态的三选二。
- 原始内容:CAP通常被解释为"你最多可以有一致性、可用性和分区容忍性中的两个特性。"这种解释的问题在于……认为数据系统是一致和可用的但不是分区容忍是毫无意义的,因为该原理完全是"关于分区情况下发生了什么"的原理。正确表述CAP原理的方式是"当分布式数据系统被分区时,它可以是一致性的或可用性的,但不能两者兼而有之。"