Quorum (分布式系统)

✍ dations ◷ 2025-11-27 06:20:56 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 低排尿量寡尿(英文:Oliguria),指排尿的量比正常人少。寡尿的定义因年龄差异而有所不同。寡尿通常是异常肾功能的最早征兆。
  • 电子跃迁分子电子跃迁表示分子中价电子从一个能级因为吸收能量时,跃迁到一个更高的能级;或者释放能量,跃迁到更低的能级的过程。如果起始能级的能量比最终能级的能量高,原子便会释放能量
  • 盘古盘古是中国神话中开天辟地的神祇,传说死后天地及万物都由其身躯和器官的变化而成。盘古的传说“约”起于东汉后期出现,到三国时已广为流传。现存文献中,222年《魏大飨记碑》最
  • 日本国山日本国(日语:日本国),别名石钵山,是日本新潟县村上市与山形县鹤冈市交界处的一座小山,因山顶标高555米,因此每年订于5月5日开山。关于此山名的由来有诸多说法,其中一说是江户时代时
  • 轰炸吴市 (1945年7月)坐标:34°14′N 132°33′E / 34.23°N 132.55°E / 34.23; 132.55吴港空袭,是美国海军及英国皇家海军的舰载机在1945年7月下旬对日本帝国海军(IJN)残存的大型军舰作出的轰炸行
  • 硫化镉锌硫化镉锌又称硫化锌镉,是硫化锌和硫化镉的混合物或复合物,可以用(Cd,Zn)S表示。它可用作光催化剂或半导体材料。它曾经被用作美国的非法人体实验。硫化镉锌可以乙酸锌为锌源,乙
  • 小妇人 (1933年电影)《小妇人》(英语:)是一部于1933年上映的美国法典前剧情片。该片由乔治·丘克执导,并由凯瑟琳·赫本、琼·本内特(英语:Joan Bennett)、弗朗西丝·迪伊(英语:Frances Dee)和珍·帕克(英
  • 变刺小檗变刺小檗(学名:),为小檗科小檗属下的一个种。 维基物种中有关变刺小檗的数据
  • 宾馆宾馆(英语:Hostel,又称旅舍),是从“迎宾馆”的用法而来,有时被使用在较低费用的旅馆场合,但也非绝对,中国部分高级酒店亦称为宾馆,如广州的广州宾馆、广东迎宾馆、广东胜利宾馆(原沙面
  • 开元镇开元镇,是中华人民共和国河北省保定市定州市下辖的一个乡镇级行政单位。开元镇下辖以下地区:小油村、赵庄子村、孔庄子村、高油村、李油村、绳油村、代庄子村、岗北村、东近同