Quorum (分布式系统)

✍ dations ◷ 2025-11-29 01:18:48 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 检体活体组织切片(biopsy),从动物或人类身上取下少量活组织作病理学诊断的一种检查方法。活检对肿瘤的临床诊断有重要意义,不仅可以确定其组织分类,还可确定其良性或恶性,为治疗提供依
  • 彭一刚彭一刚(1932年9月3日-),中国科学院资深院士,建筑设计大师,天津大学建筑学院教授、名誉院长。1932年生于安徽合肥,1953年毕业于天津大学土木建筑系建筑学专业,后留校任教。天津大学教
  • 冰激凌头痛冰激凌头痛(英语:ice-cream headache)又称大脑冻结(英语:brain freeze)、冷刺激头痛(英语:cold-stimulus headache),其学名为翼腭神经节疼痛(sphenopalatine ganglioneuralgia),是一种通
  • 第十二夜《第十二夜》(Twelfth Night, or What You Will),英国剧作家威廉·莎士比亚的浪漫喜剧,与莎士比亚许多其他剧作不同的是,它是唯一一个有另外一个名字的作者作品,又名《随心所欲》(W
  • 兵部尚书兵部尚书,中国古代官职名称,统管全国军事的行政长官,职能相当于现代各国的国防部长。俗称司马、武部尚书、大司马、夏官卿。曹魏时置五兵尚书,掌中兵、外兵、骑兵、别兵、都兵,晋
  • 赖际发赖际发(1910年-1982年),福建永定县合溪乡汤湖村人,中华人民共和国政治人物。赖际发早年跟随南昌起义部队进入上杭,后与张鼎丞一同举行永定起义。此后跟随朱德指挥的红四军进攻上杭
  • 金融工具金融工具(英语:financial instrument)又称信用工具、交易工具等,是合约双方之间的货币合同。它们可以被创建、交易、修改和结算。它们可以是现金(货币)、在实体中拥有所有权权益的
  • dietlibcdietlibc,一种轻量化的C标准库。它是自由软件,由菲力·冯·勒特那(Felix von Leitner)所开发,以GNU 通用公共许可协议第二版公开发行。它的设计目标,是作出一个尽可能小的C标准库,
  • 阿难答阿难答(蒙古语:.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 Ti
  • 王崇 (嘉靖乙未进士)王崇(?-?),字子谦,直隶任丘县(今河北省任丘市)人,保定后卫前所官籍,明朝政治人物。嘉靖十年(1531年)辛卯科顺天府乡试第十九名举人。嘉靖十四年(1535年)中式乙未科进士。历官刑部郎中。嘉靖