Quorum (分布式系统)

✍ dations ◷ 2025-11-30 14:55:05 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 分体词分体关系(英语:Meronymy)是一种语义关联。如果 A 是 B 的一部分,或 A 是 B 集合的成员,则称 A 是 B 的分体词,B 是 A 的整体词。例如,“手指”是“手”的分体词,“轮胎”是“汽车”
  • 分子马达分子马达(Molecular motor)是分布于细胞内部或细胞表面的一类蛋白质,它负责细胞内的一部分物质或者整个细胞的宏观运动。生物体内的各种组织、器官乃至整个个体的运动最终都归
  • GMT+8 ) 刷新格林尼治平均时间(英语:Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台当地的平太阳时,因为本初子午线被定义为通过那里的经线。自1924年2月5日开
  • 骆驼奶骆驼奶,自千年前骆驼被人类驯化之后,骆驼奶便成为贝都因人在沙漠生活中的重要食物,同时也是牧歌文化的灵感来源之一。当游牧民族长时间在沙漠或干旱环境中进行迁移以及放牧时,经
  • 大翼手亚目狐蝠科(学名:Pteropodidae),哺乳纲翼手目的一科,狐蝠科所属的动物有利齿狐蝠属(神女利齿狐蝠)、菲果蝠属、番果蝠属、豕果蝠属等。
  • 斯里兰卡豹斯里兰卡豹(学名:Panthera pardus kotiya ),大型猫科食肉动物,是豹的九个亚种之一。原产于斯里兰卡而得名。和其他很多豹亚种的命运相近因偷猎,栖息地减少和人豹冲突而处境堪忧,被
  • 2014年荷兰羽毛球国际赛2014年荷兰羽毛球国际赛为第15届荷兰羽毛球国际赛,属世界羽联国际系列赛级别,亦是2013/14赛季欧洲羽联巡回赛的其中一站。本届赛事于2014年4月17日至4月20日在荷兰韦斯特兰内
  • 外王内帝外王内帝,又称内帝外臣,是古代汉字文化圈的在国内自称皇帝、对中国外交时自称国王的双重体制。此体制在南越、西夏、大理、越南各朝代以及日本都使用过,渤海、吴越(钱镠在位时)、
  • 纽伦堡的审判《纽伦堡的审判》(英语:)是一部于1961年的美国法庭剧情电影,由斯坦利·克雷默担任导演,艾比·曼恩(英语:Abby Mann)编剧,以及由斯潘塞·特雷西、伯特·兰卡斯特、李察·威麦(英语:Richa
  • 阿部正静阿部正静(あべ まさきよ)、江户时代大名。陆奥国白河藩第8代藩主。陆奥国棚仓藩初代藩主。忠秋系阿部家16代。嘉永2年(1849年)11月28日出生,第7代白河藩主·正外的长男。庆应2年(1