一致性协议描述特定的一致性模型的实现。
根据一个数据是否存在主拷贝,即所有的写操作都被转发到该拷贝,将顺序一致性协议分类。
1、基于主备份的协议
在基于主备份的协议中,数据存储中的每个数据项都有一个关联的主备份,该主备份复制协调X上的写操作。
根据主备份是否被固定在一个服务器上,或将主备份移动到启动写操作的进程那里,可以区分各种基于主备份的协议。
A、基于主备份的远程写协议
最简单的主备份协议:是写操作、读操作都在单一的远程服务器上执行。这种方法,只有一个备份功能,提高系统的可靠性,但是没有提高性能。
另外的:必须向一个(固定)住拷贝转发写操作,但是可以在其他可用副本上进行读操作,这种方法称为主机备份协议。primary-backup protocal
主机备份原理:
a.主备份服务器在其X的本地拷贝上更新,
b.讲更新转发给其他备份服务器,每个备份服务器也执行这个更新
c.向主备份服务器发送确认消息。
d.主备份服务器确认其他副本更新后,向初始进程返回一个确认消息。
这种方法存在潜在的性能问题,启动更新的进程要等待时间较长;实际上这种方法更新是一种阻塞操作的方法实现的。
另外可以在主备份更新完毕后,便向初始化进程发起确认,然后再通知其他备份服务器进行更新,即非阻塞的主机备份协议。
非阻塞主机备份协议的问题:容错能力,客户端进程无法确切知道其他服务器是否更新。
一主机备份协议提供了一种实现顺序一致性的直接方法,无论各个进程使用哪个备份服务器进行读操作,所有进程都会以相同顺序看到所有的写操作。
B、本地写协议
B.1 每个数据X只有一个单一的拷贝,不存在副本。每当一个进程要在某个数据上执行操作时,先将哪个数据的单一拷贝传递到本地进程,然后执行相应操作。
B. 2 每个数据有多个拷贝,当进程要更新数据项X时,先定位主拷贝,然后将主拷贝移动到自己的位置。优点是多个相继的写操作可以在本地进行(只有使用非阻塞写才可以)
2 复制的写协议
复制写协议中,写操作可以在多个副本上执行。
A、 主动复制
主动复制中,每个副本关联一个进程,该进程执行更新操作,即操作被发送到每个副本。
主动复制的潜在问题:操作需要在各地以相同的顺序执行,因而需要一个全序的多播机制。
B、基于法定数量的协议
基本思路:要求客户在写或读一个复制的数据项签向多个服务器提出请求。
每个副本文件与一个版本号关联,更新后文件与新的版本号相关联。
对于一个N个副本的文件,必须组织Nr个服务器的读团体,Nw个服务器的写团体
条件: Nr+Nw > N Nw >N/2
第一个条件:防止读写冲突,第二个防止读读冲突。