Quorum (分布式系统)

✍ dations ◷ 2025-06-08 07:14:39 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 金巴利金巴利(意大利语:Campari)是一款力娇酒,起源于意大利,根据出售国家不同,起酒精浓度有多个版本,包括20.5%、21%、25%及28%。金巴利使用多种草药和水果酿制,包括厚叶橙(英语:Citrus myrt
  • 台语文台语白话文,或称为台湾话文、台语文、台文,是一种符合并融合台湾话语法、本身词汇以及外来词汇的书面文系统,主要流行于台湾、福建、广东一带、新加坡以及马来西亚。传统的台语
  • 搭桥手术冠状动脉旁路移植(英语:Coronary artery bypass graft,常缩写为CABG)或心脏绕道手术,俗称冠脉搭桥或搭桥,即冠状动脉旁路移植术,是一项缓解心绞痛和减少冠心病死亡风险的手术。搭桥
  • 月球探险车阿波罗月球车(英语:Lunar Roving Vehicle)是1971至1972年期间,阿波罗计划中第十五、十六和十七次登月任务中,宇航员使用的月球车。外号为“Moon Buggy”,这个称呼源自于沙滩车的俗
  • 七氧化四铽七氧化四铽的化学式写作Tb4O7,它实际上是由十二氧化七铽Tb7O12和二十氧化十一铽Tb11O20组成的混合物。棕褐色无定形粉末,不溶于水,溶于热浓酸中生成铽(Ⅲ)盐类。七氧化四铽与1:
  • 空间风化空间风化是所有暴露在严苛的太空环境中的天体表层所经历的一系列变化过程的总称。月球、水星、小行星、彗星等没有大气层的天体,表层会受到宇宙射线和太阳辐射的照射、太阳风
  • 太平军二破江南大营太平军二破江南大营是1860年(清咸丰十年)2月至5月,太平军再次击破围困天京(今南京)的清军江南大营的战役。1858年初,清廷钦差大臣和春、提督张国梁、署理提督周天受率兵围困天京,再
  • 计成计成(1582年-1642年),字无否,号否道人,苏州吴江同里人,明代造园家。生于明万历十年,卒于明崇祯十五年。著有《园冶》三卷,是目前所知世界上最早的造园专书。计成在少年时以绘画闻名,阮
  • 毓峨毓峨(1925年-),中国画家,满族,溥僩第四子,咸丰帝之弟惇亲王奕誴之曾孙,出生于北京。幼年起便师从其父溥僩及叔父溥佺修习山水画。南开大学毕业后任北京市文史资料馆馆员之余勤于画业
  • 第12航空舰队 (日本海军)第十二航空舰队(日语:第十二航空艦隊/だいじゅうにこうくうかんたい  ?)是旧日本海军的一支陆基海军航空兵编制。十二航舰成立于太平洋战争中期,主要任务为监视、防守千岛群岛