W+R>N

NWR理论

WernerVogels在讲“EventuallyConsistent”时,提到了NWR理论,即:设一个存储系统有如下属性:

N=每个数据的副本数

W=每次写操作时,必须同步确认写成功的副本数(其他副本异步写入)

R=每次读操作时,需要读取的副本数(比较版本,取最新的值)

则当W+R>N时,该存储系统可以提供强一致性,该理论是显而易见的,

强一致性等价于R中至少包含一个最新的副本,即(R-(N-W))>0,即W+R>N。

以MySQL数据库为例:

【单库模式】N=1W=1 R=1  W+R>N,可以提供强一致性

【主从模式】N>1W=1 R=1  W+R<=N,无法提供强一致性

【transfer模式】N>=1W=0 R=1  W+R<=N,无法提供强一致性

NRW理论和CAP是互相印证的:

N:系统整体可用性,正相关(副本越多,整体可用性越高)

W:系统的写可用性,负相关(每次需要同步写入的副本越多,则写可供性越低)

R:系统的读可用性,负相关(每次需要读取的副本数越多,则读可用性越低)

而W+R>N代表强一致性,可见一致性和W+R成正相关,和N成负相关,

也就是说总体上看,一致性和可用性成负相关。

你可能感兴趣的:(数据库相关硬件和协议)