Quorum (分布式系统)

✍ dations ◷ 2025-08-14 13:24:59 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 印度-伊朗语族印度-伊朗语族(英语:Indo-Iranian languages,或Indo-Iranic languages),又称雅利安语族(英语:Aryan languages)是印欧语系今日仍在使用的语言中最东方的一族,下分为印度-雅利安语支、
  • 量子密码学量子密码学(英语:Quantum cryptography)泛指利用量子力学的特性来加密的科学。量子密码学最著名的例子是量子密钥分发,而量子密钥分发提供了通信两方安全传递密钥的方法,且该方法
  • 附果附果(英语:Accessory fruit,或称为假果)指子房以外的其他之构造发育而成的果实称之为假果,而是由花萼、花冠,甚至是整个花体序参与发育而成的果实,其结构比正常果实复杂得多。相对
  • 左懋第明末画家崔子忠作左懋第像左懋第(1601年-1645年),字仲及,号萝石,乾隆时追谥忠贞,山东莱阳县(今莱阳市)人。官至兵部右侍郎。弘光朝任使者,赴北京与清朝谈和,被扣押,不肯投降,被斩首。《甲
  • 2013年定西地震2013年定西地震,是发生于2013年7月22日上午7时45分的地震,震中位于中国甘肃省定西市岷县、漳县交界,距离岷县15千米,距离漳县45千米,距离兰州190千米。中国地震局测定此次地震的
  • 2013年土耳其反政府抗议运动反政府抗议者(最初是环保主义者) 土耳其抗议者:政府人士:50,000人以上(Istanbul) 20,000(安卡拉)2013年土耳其抗议运动是从2013年5月28日在土耳其发生至今的抗议运动,被抗议者称为
  • 井上清井上清(日语:井上 清/いのうえ きよし ,1913年12月9日-2001年11月23日),日本历史学家。1936年毕业于东京帝国大学文学院,后任日本文部省维新史料编辑顾问,京都大学名誉教授。作为日
  • 硼铝石硼铝石(Jeremejevite)是一种铝和硼的氟化物聚合矿物,属硼酸盐矿物,非常极度罕见,化学代号Al6B5O15(F,OH)3。首度于1883由Mt. Soktui, Nerschinsk发现于西伯利亚Adun-Chilon山区,并
  • 白林地菇蕈伞凸面白林地菇(学名:),俗称木蘑菇(Wood Mushroom),是一种担子菌门真菌,隶属于伞菌属。这种真菌味道美味,呈白色,且广泛地分布于世界各地。白林地菇最早是由美国真菌学家卡罗·维塔
  • 量化生活量化生活(Quantified Self) 是一个将个人日常生活中用输入、状态和表现这样的参数,将科学技术引入日常生活中的技术革命。其中输入是人体吸收的外界因素,例如消化的食物,空气质