继续上次话题。
CAP的P,是partition tolerance,更准确说,是tolerance of network partition。google了一些资料,network partition的意思是网络断开,联网的两部分或多部分被分开,从一侧发给另一侧的消息会丢失。Partition Tolerance的意思是,在网络中断,消息丢失的情况下,系统照样能够工作。
根据一些专家的分析,CAP并不是一个严谨的定律,并不是牺牲了Consistency,就一定能同时获得Availability和Partition Tolerance。还有一个很重要的因素是Latency,在CAP中并没有体现。在现在NoSQL以及其他一些大规模设计时,A和P并不是牺牲C或部分牺牲C的借口,因为即使牺牲了C,也不一定A和P,并且C不一定必须要牺牲。