Quorum机制是一种简单有效的副本管理机制
(1)约定
假设:更新操作(write)是一系列顺序的过程,通过其他机制确定更新操作的顺序(例如由primary决定顺序),每个更新操作记为wi,i为更新操作单调递增的序号,每个wi执行成功后副本数据都发生变化,成为不同的数据版本,记作vi。假设每个副本都保存了历史上所有版本的数据
(2)Write-all-read-one
l 简称WARO,一种最简单的副本控制规则,即在更新时写所有的副本,只有在所有的副本上更新成功,才认为更新成功,从而保证所有副本一致,这样在读取数据时可以读任一副本上的数据。
l 缺点:
n 难实现,效率低,严格的WARO机制通常需要将版本号信息存放在某个或某组元数据服务器上。加入更新操作非常频繁,那么记录更新成功的版本号vi将成为一个关键操作,容易成为瓶颈。另外,为实现强一致性,在读取数据之前必须先读取数据中的版本号,大压力下也容易因为元数据服务器的性能造成瓶颈
n 可用性不高,一旦一个副本异常,更新操作失败,更新服务不可用,容错性差。但对读服务,只要一个副本正常,系统就应可以提供读服务。
(3)Quorum定义
l WARO牺牲了更新服务的可用性,最大程度的增强服务的可用性,将WARO的条件进行松弛,从而使得可以在读写服务可用性之间做折中,得到Quorum机制。
l 在Q