问题描述
我对分区容忍度的理解是,即使存在网络分区,系统也应该继续工作。但是CP System声明如果有网络分区则系统应该关闭以保持一致性。那么CP系统如何保持分区容错性。
谢谢
解决方法
您的困惑源于“工作”的定义。出错是可以满足 C 的,它只要求每次读取尝试要么看到最新的写入,要么导致错误响应。因此,CP 系统不会因为存在网络分区而关闭,而只会发出错误信号。
一个广义上的系统,它可以保证在发生分区时,这个事实会以某种方式传达给系统的每个组件,包括系统的每个可能的用户(或任何可以向用户询问信息的人)这必须通过询问系统来回答),因此没有人会提出一个请求,其中包括该系统可以说满足 CA:它保证每个有效请求看到最新的写入,因为在保证时没有发出请求撑不住。