Quorum (分布式系统)

✍ dations ◷ 2025-11-22 00:26:53 #投票,算法

Quorum 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要数学思想来源于鸽巢原理。

在有冗余数据的分布式存储系统当中,冗余数据对象会在不同的机器之间存放多份拷贝。但是同一时刻一个数据对象的多份拷贝只能用于读或者用于写。

该算法可以保证同一份数据对象的多份拷贝不会被超过两个访问对象读写。

算法来源于。 分布式系统中的每一份数据拷贝对象都被赋予一票。每一个读操作获得的票数必须大于最小读票数(read quorum)(Vr),每个写操作获得的票数必须大于最小写票数(write quorum)(Vw)才能读或者写。如果系统有V票(意味着一个数据对象有V份冗余拷贝),那么最小读写票数(quorum)应满足如下限制:

第一条规则保证了一个数据不会被同时读写。当一个写操作请求过来的时候,它必须要获得Vw个冗余拷贝的许可。而剩下的数量是V-Vw 不够Vr,因此不能再有读请求过来了。同理,当读请求已经获得了Vr个冗余拷贝的许可时,写请求就无法获得许可了。

第二条规则保证了数据的串行化修改。一份数据的冗余拷贝不可能同时被两个写请求修改。

在分布式系统中,冗余数据是保证可靠性的手段,因此冗余数据的一致性维护就非常重要。一般而言,一个写操作必须要对所有的冗余数据都更新完成了,才能称为成功结束。比如一份数据在5台设备上有冗余,因为不知道读数据会落在哪一台设备上,那么一次写操作,必须5台设备都更新完成,写操作才能返回。

对于写操作比较频繁的系统,这个操作的瓶颈非常大。Quorum算法可以让写操作只要写完3台就返回。剩下的由系统内部缓慢同步完成。而读操作,则需要也至少读3台,才能保证至少可以读到一个最新的数据。

Quorum的读写最小票数可以用来做为系统在读、写性能方面的一个可调节参数。写票数Vw越大,则读票数Vr越小,这时候系统读的开销就小。反之则写的开销就小。

相关

  • 苔原气候苔原气候是极地气候两大类型之一,在柯本气候分类法中标记为ET。北半球主要分布于亚洲、欧洲及北美的北冰洋沿岸地区;南半球同纬度地区为海洋所覆盖,除南极洲沿海个别岛屿以外,基
  • 鹅是经人类驯化的雁类动物,属于家禽。中国家鹅来自于鸿雁,欧洲家鹅则来自灰雁。从生物学的角度讲,鹅被列为是鸿雁或灰雁的一个变种或者亚种,故也称家雁,不过这一名称在现代汉语中
  • 米兰大学Milan Blue米兰大学(Università degli Studi di Milano,UNIMI)是意大利最重要的公立大学之一。米兰大学一共有62,801位学生,2,455位教职与研究人员,2,200 位非教职人员。米兰大
  • 米歇尔·沙勒米歇尔·沙勒(法语:Michel Chasles,1793年11月15日-1880年12月18日),也译作夏莱,法国数学家。他是巴黎艾菲尔铁塔上所列“七十二贤”之一,曾获科普利奖章。沙勒曾在帝国中学读书,1812
  • 慢性疲劳慢性疲劳(倦)症候群(英语:chronic fatigue syndrome, CFS、myalgic encephalomyelitis (ME)),又称为肌痛性脑脊髓炎(myalgic encephalomyelitis),(脊髓炎是有争议的,另一种说法为可
  • 分布直方图在统计学中,直方图(英语:Histogram)是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量,以长条图(bar)的形式具体表现。因
  • 埃斯普龙塞达何塞·德·埃斯普龙塞达(西班牙语:José de Espronceda,1808年3月25日-1842年5月23日)是浪漫主义西班牙诗人。何塞·德·埃斯普龙塞达出生于巴达霍斯省Mondaquera。青年时他在马
  • 特里尼蒂特里尼蒂县(Trinity County)又译三一县是美国加利福尼亚州的一个县,县治威弗维尔(Weaverville)。根据美国人口调查局2000年统计,共有人口13,022,其中白人占88.87%、印第安人占4.85%
  • 黄永年黄永年(1925年10月-2007年1月16日),江苏江阴人,中国文史学家。生前任陕西师范大学古籍整理研究所所长、教育部全国高等院校古籍整理研究工作委员会委员、全国古籍整理出版社规划
  • 海南书带蕨海南书带蕨,是书带蕨属的一个物种,原分布于中国海南省(三亚、白沙、陵水、儋县、乐东)、云南省(河口)及越南北部。2003年李荣文在台湾台北市北投唭哩岸山进行生态总体调查发现共约