要满足P,就是允许网络通信可能失败,那么在多个副本之间的同步就可能存在失败,那么某个副本就可能存在过期的数据。所以当用户访问这个副本时,系统有两种选择:
1. 为了满足强一致性,就一直同步,直到这个副本也得到了最新数据。但是由于通信可能失败,这个同步时间无法满足不超过timeout。即取C舍A。
2. 保证在timeout内返回结果,那么最坏情况下只能得到过期数据,即得不到最新数据,没有满足所有副本都得到最新数据(强一致性)。即取A舍C。
以上两种情况的“舍”都是最坏情况的。没有绝对,只有相对。重点是同步时间和timeout的权衡,如果网络故障率保证能在timeout内完成同步,那么C和A就都满足了。