Quorum (分布式系统)

✍ dations ◷ 2025-11-26 19:24:28 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 让-巴普蒂斯特·吕利让-巴普蒂斯特·吕利(法语:Jean-Baptiste Lully,1632年11月28日-1687年3月22日),原名乔万尼·巴蒂斯塔·卢利(Giovanni Battista Lulli),意大利出生的法国巴洛克作曲家。他一生的大部
  • 生理人常来人或生理人(他加禄语:Sangley;闽南语:.mw-parser-output .sans-serif{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Lato,"Helvetica Neue",Helvetica,
  • X-10石墨反应堆X-10石墨反应堆(英语:X-10 Graphite Reactor),前称克林顿堆(Clinton Pile)、X-10堆(X-10 Pile),是位于美国田纳西州橡树岭国家实验室的一个已经停用的核反应堆。该反应堆是世界上第二
  • 松柏目松柏目(学名:Pinales)在生物分类学上是松柏纲中的一个目,传统分类上的裸子植物门包括五个纲(松柏纲、苏铁纲、银杏纲、买麻藤纲、红豆杉纲)。现因此五支裸子植物并非单系群,而将其
  • 甘肃农业大学甘肃农业大学,是位于中国甘肃省兰州市的一所公立大学。成立于1946年,至今已有70年的历史,前身是西北畜牧兽医学院,是由中国农业部和甘肃人民政府建立的大学,并成为首批国家卓越农
  • 马萨诸塞湾殖民地马萨诸塞湾殖民地(英语:Massachusetts Bay Colony)是一个英国在17世纪定居在北美马萨诸塞湾(英语:Massachusetts Bay)东海岸的殖民地,被划分至新英格兰并且包含当时重要城市塞勒姆
  • 绝缘子 (基因)绝缘子(英语:insulator)是真核生物基因组的调控元件之一,亦为一种边界元件。功能为阻止临近调控元件,对它所界定基因的启动子起增强或者阻遏的作用。它对增强子的抑制作用具有极
  • 胡安·曼努埃尔·桑托斯胡安·曼努埃尔·桑托斯·卡尔德隆(Juan Manuel Santos Calderón,1951年8月10日-),哥伦比亚政治人物,经济学家,前任哥伦比亚总统,2016年诺贝尔和平奖得主。1951年8月10日,桑托斯在哥
  • 桌上角色扮演游戏桌上角色扮演游戏(Tabletop Role Playing Game,缩写: TRPG)是一种最初的角色扮演游戏。游戏“龙与地下城”的出现使TRPG持续跟世界知名的文学、漫画作品(如魔戒、哈利波特、漫威
  • 教学大纲教学大纲,指学校每门学科的教学纲要。在日本,教学大纲由老师提供给学生,里面记载了课程教学计划。在美国,从每次授课的内容到个别课程必要的听课信息,教学大纲里应有尽有。