Quorum (分布式系统)

✍ dations ◷ 2025-11-21 16:14:21 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 胸膜腔胸膜腔(pleural cavity)为壁层胸膜和脏层胸膜之间反折包围的一对空腔,左右胸腔各有一个。脏层胸膜紧紧被覆于肺脏表面,而壁层胸膜则紧贴于胸壁(英语:thoracic wall)上。胸膜腔内含
  • 神经性厌食症神经性厌食症(英语:anorexia nervosa),一般称为厌食症(英语:anorexia)是一种进食障碍,一般分别为:“自我约束型”以及“暴饮暴食型”。其中“自我约束型”厌食患者占多数,此型患者会万
  • 活化石活化石,是指任何生物其类似种只存在于化石中,而没有其他现存的近似种。这些种类曾经从主要的灭绝事件中存活下来,并保留过去原始的特性。活化石定义是一般先发现化石再发现活体
  • 奥运会奥林匹克运动会(希腊语:Ολυμπιακοί Αγώνες、法语:Jeux olympiques、英语:Olympic Games),简称奥运会、奥运,是国际目前最高等级的综合型体育赛事,由国际奥林匹克委
  • 书信书信,又称书、启、笺、牍、简、札等。是人们以书写于纸张(或其他的文字记录体)的文字、图像为内容的一种交流形式。在中国古代,也简称为“书”或“尺牍”等等,在例如司马迁给朋友
  • 约克角半岛约克角半岛(英语:Cape York Peninsula)是澳大利亚北部昆士兰州的一个半岛,其北端约克角是澳大利亚大陆的极北点。该半岛在1770年由英国航海家詹姆斯·库克以约克公爵的封号命名
  • 驱赶当地居民的方式东方总计划(德语:Generalplan Ost)是纳粹德国制作的一份计划,主要内容是围绕波兰战役和苏德战争之后如何处置占领地区。德国计划通过移民使得这些地区德国化,并流放斯拉夫人。东
  • 2019冠状病毒病新喀里多尼亚疫情2019冠状病毒病新喀里多尼亚疫情,介绍在2019冠状病毒病疫情中,在法国海外集体新喀里多尼亚发生的情况。2019冠状病毒病于2020年3月波及新喀里多尼亚。 2020年3月17日,蒂埃里·
  • 吉阿吉阿语吉阿吉阿语,或称西布顿语属于南岛语系,主要使用于靠近于印尼苏拉威西岛东南海岸旁之布顿岛南端巴务巴务市周边。至2009年大约有六万人仍在使用吉阿吉阿语。说吉阿吉阿语的人、
  • 科孚宣言科孚宣言,是使南斯拉夫王国的成立成为可能的协议。 1916年,流亡中的塞尔维亚议会,在科孚岛市立剧院的一次会议上,提议建立南斯拉夫王国。 1917年7月20日,第一次世界大战期间,在英