Quorum (分布式系统)

✍ dations ◷ 2025-10-08 06:18:28 #投票,算法

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

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

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

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

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

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

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

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

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

相关

  • 教育可视化可视化是指用于创建图形、图像或动画,以便交流沟通讯息的任何技术和方法。在历史上包括洞穴壁画、埃及象形文字等,如今可视化有不断扩大的应用领域,如科学教育、工程、互动多媒
  • 儿童发展阶段儿童发展阶段 或 儿童发育的阶段(英语:Child development stages) 指的是儿童发育理论(英语:child development)认为孩子在不同年龄阶段应该具备的基本先天能力(又被称为孩子发育的
  • 亨利·沃兹沃思·朗费罗亨利·沃兹沃思·朗费罗(Henry Wadsworth Longfellow,1807年2月27日-1882年3月24日),美国诗人、翻译家。炉边诗人之一。其父亲是个律师,母亲尤爱诵读诗歌。他们养育了四男四女,亨利
  • 吡喃吡喃(Pyran)是含有一个氧原子的完全不饱和六元杂环化合物。它有两个双键,根据双键位置的不同,可以有两个异构体:2H-吡喃和4H-吡喃。吡喃并不是一个闭合的共轭体系,但它的吡啶季铵
  • 大卫大卫(希伯来语:דָּוִד‎,阿拉伯语:داود‎,其他音译:达味/天主教,多惠圣王或多惠法王/景教,达乌德/伊斯兰教,大辟/旧译),是公元前10世纪以色列联合王国的第二任国王。大卫乃“被爱
  • 南京邮电大学南京邮电大学(曾用名南京邮电学院)是一所以工学、理学、管理学为主体,以电子、信息学科为特色,具有工学、理学、文学、经济学、管理学和教育学等多个学科门类,博士、硕士、本科等
  • 沈大高速公路沈大高速公路是中国大陆第一条开工建设的高速公路,因此被称为“神州第一路”,由辽宁省沈阳至大连,目前里程348.5公里。
  • 昆雅语昆雅语(Quenya)是托尔金创造的精灵语中的一种。托尔金在昆雅语的设计中主要受芬兰语的影响,仿照芬兰语黏着语语言类型的特性,单词拥有复杂的词缀,具有高度精确性;甚至有些单字可以
  • 利格牛肝菌 C. Martín 1894 sensu auct. mult.利格牛肝菌(学名:),是一种担子菌门真菌,隶属于牛肝菌属。这种真菌分布于欧洲,并且是有毒的。其有毒成分主要引发人体胃肠道症状,并且与魔牛肝
  • 路德汉堡路德汉堡(英语:Luther Burger),又称甜甜圈汉堡(英语:donut burger),是以蜜糖甜甜圈取代汉堡面包的汉堡或起司堡。它的热量约介于800至1500大卡(3300至6300千焦)之间,是美国著名的油腻、