赞
踩
一致性(Consistency)是指多副本(Replications)问题中的数据一致性。可以分为强一致性、顺序一致性与弱一致性。
也称为:**原子一致性(Atomic Consistency)**线性一致性(Linearizable Consistency)
强一致性有两个要求:
简言之,在任意时刻,所有节点中的数据都是一样的。
例如,对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。
the result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor appear in this sequence in the order specified by its program. - - Lamport
两个要求:
举个例子:
Write(x, 4):写入x=4
Read(x, 0):读出x=0
1)图a是满足顺序一致性,但是不满足强一致性的。原因在于,从全局时钟的观点来看,P2进程对变量X的读操作在P1进程对变量X的写操作之后,然而读出来的却是旧的数据。但是这个图却是满足顺序一致性的,因为两个进程P1,P2的一致性并没有冲突。从这两个进程的角度来看,顺序应该是这样的:Write(y,2) , Read(x,0) , Write(x,4), Read(y,2),每个进程内部的读写顺序都是合理的,但是这个顺序与全局时钟下看到的顺序并不一样。
2)图b满足强一致性,因为每个读操作都读到了该变量
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。