知识卡片
CAP细粒度化
内容
CAP 不是给系统贴 AP 或 CP 标签,而是在网络分区出现时识别分区、进入明确的限制模式、恢复后修补状态。工程上应把取舍落到子系统、数据类型和运行阶段,而非全局二选一。
参考来源
- 位置:《大数据日知录:架构与算法》第2章《数据复制与一致性》"2.1.2 CAP重装上阵(CAP Reloaded)"一节(源文件:_epub-src/OEBPS/text00007.html)
- 结论依据:原文引用Eric Brewer 2012年的反思,明确"应该分为3个步骤:首先能够识别网络分区发生,然后在网络分区场景下进入明确的分区模式……最后在网络分区解决后能够进行善后处理",并指出取舍"不应该是粗粒度地在整个系统级别进行取舍……而是应该考虑系统中存在不同的子系统……进行灵活的差异化的细粒度取舍"。
- 原始内容:也不应该是粗粒度地在整个系统级别进行取舍,即整个系统要么取A舍C,要么取C舍A,而是应该考虑系统中存在不同的子系统,甚至应该在不同的系统运行时或者在不同的数据间进行灵活的差异化的细粒度取舍……应该分为3个步骤:首先能够识别网络分区发生,然后在网络分区场景下进入明确的分区模式,此时可能会限制某些系统操作,最后在网络分区解决后能够进行善后处理,即恢复数据的一致性或者弥补分区模式中产生的错误。