Quorum (分布式系统)

✍ dations ◷ 2025-11-15 12:18:38 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • UprifosbuvirUprifosbuvir(MK-3682)是一种开发用于治疗丙型肝炎的抗病毒药物。它是一种核苷酸类似物,可用作NS5B RNA聚合酶抑制剂,目前处于III期人体临床试验中。
  • 群体感应群聚感应(Quorum sensing)是一种与族群密度有相互关系的刺激和反应的系统。许多细菌会透过群聚感应,根据其族群规模来调节基因的表现。有些社会性昆虫也会使用和群聚感应的相似
  • 东京都厅舍坐标:35°41′23″N 139°41′32″E / 35.68972°N 139.69222°E / 35.68972; 139.69222年间维持管理费:约40亿円、 总工费:1569亿円(含第二本厅舎、议会厅舎)东京都厅舍(日语:東
  • 福克兰群岛福克兰群岛(英语:Falkland Islands,英国所使用的称呼)或称马尔维纳斯群岛(西班牙语:Islas Malvinas,阿根廷所使用之称呼),由东福克兰岛和西福克兰岛两个主岛以及周围778座小岛所组成
  • 牙髓病学牙髓病学(endodontics;希腊语词缀:"endside-" 表"内部"、"odont-" 表"牙齿";ICD-10 XI: K04.0-K04.9)是关于牙髓研究,及其治疗有关的牙科专业(英语:Specialty (dentistry))。牙髓病治
  • 刘偃 (杨丘侯)刘偃(?-?),杨丘侯刘安子,齐悼惠王刘肥孙,汉高祖曾孙。前164年继承其父为杨丘侯。前153年,因擅自离开杨丘侯国之罪,削为司寇。刘偃曾经撰有汉赋十九篇,而赋名赋文已不得而知。
  • 瓦拉哈吉里·文卡塔·吉里瓦拉哈吉里·文卡塔·吉里(泰卢固语:వరాహగిరి వేంకట గిరి;Varahagiri Venkata Giri,简称V. V. Giri,1894年8月10日-1980年6月23日)是第四任印度总统(1969年-1974年)
  • 锺妮 (网球运动员)锺妮(1962年-),云南人,中国女子网球运动员。她曾在韩国汉城举办的1986年亚洲运动会网球比赛中获得女子团体金牌和混合双打银牌。
  • KS马粘KS马粘(K. S. Maniam,1942年-2020年2月19日)是马来西亚印度裔学者、小说家和剧作家。他生于吉打州的美农(马来语:Bedong),双亲是来自印度的移民。在童年时,他曾接受淡米尔语教育,后转
  • 弗里波特 (明尼苏达州)弗里波特(英语:Freeport)是一个美国城市,位于明尼苏达州斯县。根据2010年的人口普查,当地人口为632人。 根据美国人口普查局,该城市的总面积为1.15平方英里(2.98平方千米)。