基于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
相关推荐
Quorum NRW是分布式系统中的一个概念,它是指在分布式系统中,选择合适的节点来存储数据。 Vector clock是分布式系统中的一个概念,它是指使用时间戳来记录数据的更新时间。 Virtual node是分布式系统中的一个概念...
手段篇:一致性哈希、Quorum NRW、Vector clock、Virtual node、gossip协议、Merkle树、Paxos算法等是分布式系统中确保数据一致性和高可用性的常用技术。 例如,一致性哈希解决了分布式缓存和数据库中节点动态增删...
CAP理论是NoSQL领域的重要基石之一,它提出了分布式系统无法同时保证一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三个特性。具体来说: - **一致性(C)**:指所有节点在...
- **Quorum NRW**:在分布式系统中,决定读写操作的复制策略。 - **Vector clock**:用于解决分布式环境中数据版本冲突。 - **Virtual node**:通过虚拟节点扩展哈希表,平衡负载。 - **Gossip协议**:通过节点...
- Quorum机制确保了分布式系统中读写操作的一致性。 - NRW(N个节点读取,R个节点写入,W个节点确认)是一种更灵活的Quorum实现方式,可以更好地平衡一致性和可用性。 **3.3 Vector Clock** - Vector Clock是一种...
- **Quorum NRW**:读写策略,确保数据读写时的正确性。 - **Vector Clock**:用于处理分布式系统的版本冲突。 - **Gossip协议**:通过节点之间的消息传播来同步数据,分为状态转移模型和操作转移模型。 - **...
Paxos算法是一种分布式一致性算法,用于解决分布式系统中多副本一致性的问题。 ##### 7. DHT (Distributed Hash Table) DHT是一种分布式哈希表,用于存储和检索分布在多个节点上的数据,支持高效的数据查找。 ###...
- **Paxos**:一种解决分布式系统中一致性问题的经典算法。 - **Distributed Hash Table (DHT)**:一种分布式数据结构,用于构建分布式哈希表,支持大规模数据存储与检索。 - **MapReduce**:一种编程模型,用于处理...
手段篇中,作者讨论了一致性哈希、Quorum机制、NRW规则、Vector Clocks等分布式一致性算法。这些方法用于在分布式环境中保证数据的一致性。同时,他还提到了Amdahl定律和Gustafson定律,这两个定律分别用于分析并行...
Paxos是一种用于实现分布式系统中一致性问题的算法。它解决了如何在一个分布式环境中就某个值达成一致的问题。 #### NoSQL的数据存储模型 NoSQL数据库提供了多种数据存储模型以适应不同的业务需求。 - **键值模型*...