Quorum (分布式系统)

✍ dations ◷ 2025-11-04 11:34:40 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 头孢咪唑头孢咪唑(其国际非专利药品名称为“Cefpimizole”)是一种第三代头孢菌素。羧基青霉素:羧苄西林(卡茚西林) · 替卡西林 · 替莫西林 脲基青霉素:阿洛西林 · 哌拉西林 ·
  • 头疼头痛,又叫头疼(英语:headache),是一种在头部、颈部或肩膊以上位置发生的局部疼痛。许多头部和颈部问题的症状都是头痛。头痛表现种类繁多,可能是偏头痛、紧缩型头痛(英语:tension-ty
  • 本杰明·富兰克林本杰明·富兰克林 FRS FRSE(英语:Benjamin Franklin,1706年1月17日-1790年4月17日),出生于美国麻省波士顿,美国博学家、开国元勋之一。他是杰出的政治家、外交家、科学家、发明家,同
  • 假定型生物化学假定型生物化学(英语:Hypothetical types of biochemistry)不同于现有的生物化学形式的推测,在科学上是可行的,但现在不能证明实际存在。地球上已确认的生物物种通常使用含碳有机
  • 多库酯钠多库酯(Docusate)也称通利妥,通常药用为其钠盐形式称“多库酯钠”,是适用于便秘治疗的泻药,若儿童有硬便时服用它是一个很好的选择。若是使用类鸦片药物(英语:opiate)的便秘,可以配合
  • 4th黄体制剂(英语:Progestin)是一种合成的孕激素,与孕酮有类似效果。Progestin的两种最重要用途为激素避孕(英语:Hormonal contraception)(独立或与雌激素一同使用)以及作为激素替代疗法
  • 黄氏节孝坊坐标:25°02′35″N 121°30′56″E / 25.043119°N 121.515564°E / 25.043119; 121.515564黄氏节孝坊现位于台湾台北市的228和平纪念公园内,是中华民国直辖市定古迹。黄氏节
  • 肌球蛋白轻链肌球蛋白轻链(英语:Myosin light chain)是肌球蛋白的一个亚基。肌球蛋白轻链拥有自己的肽链,这点与重链不同。它们不被包括在肌球蛋白家族中,但对形成肌球蛋白酶催化超分子复合体
  • 2014年荷兰羽毛球大奖赛2014年荷兰羽毛球大奖赛为第66届荷兰羽毛球公开赛,是2014年世界羽联大奖赛的其中一站。本届赛事于2014年10月7日至10月12日在荷兰阿尔梅勒内的Topsportcentrum Almere举行,并
  • 除权日除权日在股市指一个特定日期,如果某一上市公司宣布派发红利股份、红利认股权证、以折让价供股或派发其它有价权益,在除权日之前一日持有它的股票的人士(即股东)可享有该等权益,在