Quorum (分布式系统)

✍ dations ◷ 2025-05-18 23:12:47 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 高低重音高低重音或音高重音(英语:Pitch accent),是一种重音。在高低重音语言里,一个词里的每个音节的音调取决于该音节在词里出现的位置。而声调语言中,每个音节有自己固定的声调,它的声调
  • 癔病歇斯底里(Hysteria)指无法控制的情感发泄。在过去是一种精神疾病的名称,又被称为癔病或癔症。症状是由于未知恐惧等原因而情绪失控,或幻想身体某部位不舒服,却无法被医学检查出来
  • 弗里德里希·希策布鲁赫弗里德里希·恩斯特·彼得·希策布鲁赫,ForMemRS(德语:Friedrich Ernst Peter Hirzebruch,1927年10月17日-2012年5月27日),德国数学家,研究领域为拓扑学,复流形和代数几何。他是同代
  • 肌球蛋白轻链肌球蛋白轻链(英语:Myosin light chain)是肌球蛋白的一个亚基。肌球蛋白轻链拥有自己的肽链,这点与重链不同。它们不被包括在肌球蛋白家族中,但对形成肌球蛋白酶催化超分子复合体
  • 脱脱不花脱脱不花(蒙古语:.mw-parser-output .font-mong{font-family:"Menk Hawang Tig","Menk Qagan Tig","Menk Garqag Tig","Menk Har_a Tig","Menk Scnin Tig","Oyun Gurban Ulus
  • 古斯塔夫·诺斯克古斯塔夫·诺斯克(Gustav Noske;1868年7月9日-1946年11月30日),德国政治家,曾在1919至20年担任魏玛共和国的首任国防部长。诺斯克是德国社民党成员,在一战期间是德国议会成员,一直积
  • 周国光周国光(?-?),湖南省长沙府湘乡县人,清朝政治人物、进士出身。光绪二十四年(1898年),参加光绪戊戌科殿试,登进士二甲77名。同年五月,以主事分部学习。后为兵部主事加四级特授中宪大夫(正四
  • 萨拉·埃拉尼萨拉·埃拉尼(Sara Errani,1987年4月29日-)是意大利职业网球女运动员,2002年转职业。她的WTA生涯最高单打排名为第5,目前为止,夺得6个WTA单打冠军。埃拉尼在2002年进入职业网坛转为
  • 新跨太平洋海缆新跨太平洋海缆(英语:New Cross Pacific Cable Network,简称:NCP)是由亚太地区电信运营商合作建造的跨太平洋高容量海底光缆系统,可为中国大陆、台湾、韩国、日本及美国提供光纤
  • 领春木科领春木科只有1属——领春木属()共2种:领春木()与多蕊领春木(),分别原生于中国和日本。前者分布在中国除东北以外各地。本科植物为落叶灌木或小乔木;单叶互生,圆形或近卵形,边缘有齿;花两