Quorum (分布式系统)

✍ dations ◷ 2025-10-21 02:59:57 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 翁贝托二世翁贝托二世 (Umberto II,1904年9月15日-1983年3月18日),萨伏依亲王,意大利末代国王,1946年意大利政体公投废除君主制,在位仅一个月便被迫退位。他是维克多·伊曼纽三世之子。在第二
  • 异丁烷异丁烷(IUPAC命名2-甲基丙烷,又称甲基丙烷)是一种烷烃,与(正)丁烷互为同分异构体。由于近年来人们对氟利昂引起的臭氧层破坏问题的关注,异丁烷作为氟利昂的替代品,使用逐渐增加。异
  • 朱履中朱履中,字玉堂,浙江海盐人,清朝政治人物。寓居北京,嘉庆元年(1796年)贡生,嘉庆二年(1797年)刊刻《淡巴菰百咏》一书。嘉庆二十年(1815年),任福建和平县县令,改龙溪县县令。嘉庆二十二年因
  • 天堂电影院《天堂电影院》(意大利语:Nuovo Cinema Paradiso)是意大利导演朱赛贝·托纳多雷(Giuseppe Tornatore)所执导的一部电影,1988年首度在意大利上映。雅克·佩兰(Jacques Perrin)、菲利
  • 入侵中立国芬兰苏联惨胜芬兰苏联冬季战争(芬兰语:Talvisota,瑞典语:Vinterkriget,俄语:Зимняя война)是苏联与芬兰于第二次世界大战初期爆发的战争,自1939年11月30日由苏联向芬兰发动进
  • 哈立德·阿萨德哈立德·阿萨德(阿拉伯语:خالد الأسعد‎;1932年1月1日-2015年8月18日)是叙利亚的一位考古学家。哈立德出生在叙利亚的塔德莫(又称巴尔米拉新城),在那里度过了他大部分的人
  • 梁德明 (马来西亚)梁德明(马来语:Liang Teck Meng;1971年7月24日-),马来西亚政治人物,为马来西亚民政运动党总秘书。他曾经于2008年至2018年担任柔佛州新邦令金国会议员,后来在第十四届全国大选败给希
  • 杰瑞·赫尔曼杰拉尔德·谢尔顿·赫曼(Gerald Sheldon Herman 1931年7月10日-2019年12月26日)是一名美国作曲家、作词家,为百老汇的音乐剧写过许多作品,其中不乏《你好,多莉!》等名作。2009年,他
  • 凝乳糖凝乳糖(爱沙尼亚语:kohuke,拉脱维亚语:biezpiena sieriņš,立陶宛语:varškės sūrelis, 乌克兰语:сирок)是一种由凝乳制作的零食,主要流行在波罗的海三国。类似凝乳糖的零食
  • 蒙罗/诺伊曼效应蒙罗/诺伊曼效应,是一种炸药爆炸相关的现象。在薄形的类圆锥状金属(凹形的研钵状或圆锥状空洞)内衬爆炸的炸药,爆炸时的能量会集中到类圆锥状的中心轴,金属内衬会沿着中心轴的方