Quorum (分布式系统)

✍ dations ◷ 2025-11-27 13:05:48 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 病理性赌博赌博成瘾或问题赌博(Ludomania)是一种持续需要赌博的心理,尽管患者明知其负面危害,又或希望停止。问题赌博的定义,在于赌徒或其他人受到伤害,而不是赌徒的行为会否构成伤害。对于
  • 瑜伽瑜伽(印地语:योग,英语:yoga),源于古印度文化,义为探寻“梵我一如”的道理与方法,古印度六大哲学派别中有瑜伽派(英语:Yoga (philosophy))。而现代人所称的瑜伽则是主要是一系列的修
  • 大蕉大蕉是香蕉(学名:Musa × paradisiaca,云南亦称粉芭蕉)的人工选育品系之一。由野蕉和小果野蕉杂交而成,原产于印度,公元六世纪时传至非洲。十八世纪始传入南美洲。现在热带地区多
  • 细胞色素b细胞色素(英文:cytochrome)一般是指一类膜结合的血红素蛋白,以血基质为辅基,参与电子传递。它可以以单体的形式(如细胞色素c)或作为复合物酶中的一个亚基来发挥氧化还原作用。细胞
  • 磷酸一氢钙磷酸氢钙是一种化合物,通常以二水合物(其化学式为 CaHPO4 · 2H2O )的形式存在,但可经由加热变成无水的形式。磷酸氢钙几乎不溶于水,在 25 °C 时的溶解度只有 0.02 g/100 mL 。
  • 赤壁赤壁,是一地名,闻名于公元208年之赤壁之战,以及大文豪苏轼以赤壁为题之著名词赋。而现代指1998年改名为赤壁市的原湖北省蒲圻市。赤壁之战发生于汉末三国时期,乃三大战役之一,当
  • 生物模型数据库BioModels Database是一个完全免费的,用来存储描述生化反应的数学模型的数据库。同时也提供很多其他功能,例如反应模拟、提取子模型等。BioModels Database是一个免费的生物模
  • 矢量图形矢量图形是计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像。矢量图形与使用像素表示图像的位图不同。所有的现代计算机显示器都要将矢量图形转换成栅
  • 列昂尼德·米哈伊洛维奇·扎科夫斯基列昂尼德·米哈伊洛维奇·扎科夫斯基(俄语:Леони́д Миха́йлович Зако́вский,拉脱维亚语:Leonīds Zakovskis,1894年-1938年8月29日),苏联特务、内务人
  • 费多尔·冯·博克莫利兹·阿尔布雷希特·弗里德里希·弗朗兹·费多尔·冯·博克(德语:Moritz Albrecht Friedrich Franz Fedor von Bock,1880年12月3日-1945年5月4日)是第二次世界大战期间的德国