基于Quorum投票的冗余控制算法
Quorom 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要数学思想来源于鸽巢原理。
在有冗余数据的分布式存储系统当中,冗余数据对象会在不同的机器之间存放多份拷贝。但是同一时刻一个数据对象的多份拷贝只能用于读或者用于写。
该算法可以保证同一份数据对象的多份拷贝不会被超过两个访问对象读写。
算法来源于[Gifford, 1979][3][1]。 分布式系统中的每一份数据拷贝对象都被赋予一票。每一个操作必须要获得最小的读票数(Vr)或者最小的写票数(Vw)才能读或者写。如果一个系统有V票(意味着一个数据对象有V份冗余拷贝),那么这最小读写票必须满足:
- Vr + Vw > V
- Vw > V/2
第一条规则保证了一个数据不会被同时读写。当一个写操作请求过来的时候,它必须要获得Vw个冗余拷贝的许可。而剩下的数量是V-Vw 不够Vr,因此不能再有读请求过来了。同理,当读请求已经获得了Vr个冗余拷贝的许可时,写请求就无法获得许可了。
第二条规则保证了数据的串行化修改。一份数据的冗余拷贝不可能同时被两个写请求修改。
算法的好处
在分布式系统中,冗余数据是保证可靠性的手段,因此冗余数据的一致性维护就非常重要。一般而言,一个写操作必须要对所有的冗余数据都更新完成了,才能称为成功结束。比如一份数据在5台设备上有冗余,因为不知道读数据会落在哪一台设备上,那么一次写操作,必须5台设备都更新完成,写操作才能返回。
对于写操作比较频繁的系统,这个操作的瓶颈非常大。Quorum算法可以让写操作只要写完3台就返回。剩下的由系统内部缓慢同步完成。而读操作,则需要也至少读3台,才能保证至少可以读到一个最新的数据。
Quorum的读写最小票数可以用来做为系统在读、写性能方面的一个可调节参数。写票数Vw越大,则读票数Vr越小,这时候系统写的开销就大。反之则写的开销就小。
http://www.cnblogs.com/netfocus/p/3622184.html
http://blog.csdn.net/chennut0802/article/details/49029165
相关推荐
#资源达人分享计划#
Maekawa 算法用于在分布式系统中实现互斥。 实现了原始算法的所有特征。 该算法是用Java实现的。 主要设计决策:分布式系统中的进程/节点被视为线程。 然后节点可以异步进入临界区。 但是进程进入 CS 的时间是按照...
手段篇 一致性哈希 亚马逊的现状 算法的选择 Quorum NRW Vector clock Virtual node gossip Gossip (State Transfer Model) Gossip (Operation Transfer Model) Merkle tree Paxos 背景 DHT Map Reduce Execution ...
quorum联盟链运行流程图
quorum, 支持数据隐私的Ethereum的permissioned实现 仲裁 仲裁是基于ethereum的分布式分布式分类帐协议,具有事务/协定保密性和新的一致性机制。仲裁是 go fork,并与 go-ethereum发布 releases 。go-ethereum的关键...
提出一种基于发布/订阅模式的分布式SCADA消息中间件的设计方案,该方案使用了N-Tree结构将系统消息进行逻辑区域划分,设计了一套完善的消息传递与反馈处理机制,方案中利用Quorum-Based改进型算法确保了分布式节点的...
为了在无线传感器网络中增强节点通信时间分配的公平性,设计了一种局部的按需异步时间分配算法(SATA).SATA算法的设计基于Quorum系统(Quorum system, QS).首先构造出一个QS,然后节点根据自身的通信量在QS中选择合适...
quorum.js 库将于 2021 年 12 月 31 日弃用,从我们停止支持该项目之日起。 quorum.js 库已弃用,取而代之的是 ,后者提供了与包括 Besu 和 GoQuorum 在内的 Quorum 堆栈的更广泛兼容性。 从现在开始,我们鼓励...
Quorum NRW Vector clock Virtual node gossip Gossip (State Transfer Model) Gossip (Operation Transfer Model) Merkle tree Paxos 背景 DHT Map Reduce Execution Handling Deletes 存储实现 节点变化 列存 描述...
华为存储双活仲裁软件
NULL 博文链接:https://kabike.iteye.com/blog/2224252
为解决现有的quorum系统节点没有差异、数据读取延迟较大、存储利用率低等缺陷,提出了一种新的基于特权分级的quorum系统。该系统借助代理动态调整各quorum,并按数据存储时段将各节点划分为不同的等级,此外还设计了...
server程序入口(启动类在zookeeper-server/src/main/java文件夹中,org.apache.zookeeper.server.quorum.QuorumPeerMain),program argument为conf/zoo.cfg,将conf/log4j.properties配置拷贝到zookeeper-server/...
quorum-cloud:在选定的云提供商中部署Quorum网络
它基于示例,并提供了一个简单的Quorum网络设置,带有或不带有Tx Manager的Quorum隐私功能,以及以下三种受支持的共识算法: 筏集团伊斯坦堡通过此示例,可以启动一个由8个独立Quorum节点组成的功能齐全的Quorum ...
肺炎克雷伯氏菌Ⅱ型群体感应系统对环境变化的响应研究,朱虎,刘慧君,本研究运用哈氏弧菌BB170报告检测和定量反转录聚合酶链式反应(qRT-PCR)技术分析了肺炎克雷伯氏菌Ⅱ型群体感应系统对环境变化(碳源
传感器网络中的设备逐渐增多使得地址的管理和维护变得复杂,已有的地址配置协议Quorum和MANETConf方法利用分布式的方法能够完成地址的自适应配置和管理,但其在开销以及配置速度方面逐渐制约了网络的应用和发展。...
npx quorum-wizard 您还可以使用npm全局安装向导: npm install -g quorum-wizard # Once the global module is installed, run: quorum-wizard 注意:许多npm安装没有安装全局模块的权限,并且会引发EACCES错误...
无线传感器网络是一种新型的网络和计算技术,它可以将客观世 界中不断变化的信息持续高效地传递给人们,为人们提供各种形式的 数据与服务。这种网络的自适应性、抗毁性、易部署...位置管理和与其相关的Quorum构造算法。
java笔试题算法很棒的法定人数 精选的优秀软件、库、工具、文章、教育资源、讨论渠道等列表 ConsenSys Quorum 是支持企业以太坊区块链的基础开源协议层。 它提供了一套广泛的软件组件,例如企业以太坊客户端、私人...