`
dalan_123
  • 浏览: 86942 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

分布式------NWR

 
阅读更多
NWR是一种在分布式存储系统中用于控制一致性级别的一种策略。在Amazon的Dynamo云存储系统中,就应用NWR来控制一致性。
让我们先来看看这三个字母的含义:

N:同一份数据的Replica的份数
W:是更新一个数据对象的时候需要确保成功更新的份数
R: 读取一个数据需要读取的Replica的份数

NWR值的不同组合会产生不同的一致性效果,当W+R>N的时候,整个系统对于客户端来讲能保证强一致性。当W+R<N的时候只能保证最终一致性。

以常见的N=3、W=2、R=2为例:

N=3,表示,任何一个对象都必须有三个副本(Replica),W=2表示,对数据的修改操作(Write)只需要在3个Replica中的2个上面完成就返回,R=2表示,从三个对象中要读取到2个数据对象,才能返回。

在分布式系统中,数据的单点是不允许存在的。即线上正常存在的Replica数量是1的情况是非常危险的,因为一旦这个Replica再次错误,就 可能发生数据的永久性错误。假如我们把N设置成为2,那么,只要有一个存储节点发生损坏,就会有单点的存在。所以N必须大于2。N约高,系统的维护和整体 成本就越高。工业界通常把N设置为3。

当W是2、R是2的时候,W+R>N,这种情况对于客户端就是强一致性的。

从不等式中可以看到,当W+R>N的时候,整个系统能够保证R>N-W。也就是说,至少每次都能够读到一份最新的数据。因此只需要把最 新的数据返回即可。所以,虽然服务器上的三份Replica有不一致的情况,对于客户端来讲,每次读到的数据都是最新的。所以这种情况对于客户端来讲是强 一致性的。

另外的几种情况:<N,W,R>=<1,1,1>和单点运行的数据库是同一个配置。<N,W,R>=< 2,1,1>,则相当于Slave-Master模式。由于1+1不大于2,所以这种情况是可能读到非最新数据的。也就是这种配置是不一致的。

W越大,写性能越差。R越大,读性能越差。N越大,数据可靠性就越强。为了保障一致性,平衡读写性能,通常的配置是:W=Q, R=Q ,Q=N/2+1(N=3,R=2,W=2的配置就满足这个公式)。
分享到:
评论

相关推荐

    分布式键值系统-Dynamo1

    这种复制策略被称为NWR,其中N代表副本数量,R表示读操作需要成功的副本数,W表示写操作需要成功的副本数。只要W+R&gt;N,系统就能在单点故障情况下保证数据的可用性。数据回传机制用于处理临时故障,当故障节点恢复时...

    分布式协议与算法1

    10. **NWR算法**:NWR(Node,Write,Read)是关于Quorum选择的一种策略,用于平衡系统的可用性和一致性。 在分布式系统中,通常需要在CAP(Consistency、Availability、Partition Tolerance)三者之间做出权衡。...

    分布式键值系统1

    Dynamo采用了**复制协议**来保证数据的冗余和容错性,即NWR策略。N表示数据的复制份数,R是读操作所需的最小活动副本数,W是写操作必须成功的最小副本数。只要满足W+R&gt;N,就能确保在单点故障时仍能读取有效数据。...

    美团分布式数据库实践.pdf

    NWR模型则需要上层系统做更多的工作来确保正确性。Blade针对美团的业务场景,可能采用了适合冲突频繁的场景的复制策略。 3. **分布式事务**:典型的分布式事务如两阶段提交,但在高并发环境下,Percolator模型被...

    分布式数据库和中间件架构设计.pptx

    在分布式数据库的架构设计中,NWR法则用于控制数据复制的策略,以平衡读写性能和数据一致性。例如,当R+W&gt;N时,可以保证强一致性,而R+W时,可能无法确保数据的一致性。在特定场景下,可以通过调整W和R的值来优化...

    关于分布式系统的思考

    谈及一些分布式系统的理论和思想,包括CAP、BASE、NWR等。并简单分析一些主流数据库分布式方案的利弊,以便我们在开发时更深入全面地进行思考、选择和设计。在讨论常见架构前,先简单了解下CAP理论:CAP是...

    amazon-dynamo-sosp2007.pdf

    NWR是一种在分布式数据存储中常用的策略,它指的是系统必须确认写操作的N个副本、读取R个副本,并且需要W个副本响应后才认为操作成功。这种策略能够帮助系统在面对节点故障时保持可用性和一致性之间的平衡。 Merkle...

    云存储技术应用 第六章:分布式云存储.pdf

    常见的策略有一致性哈希、最接近的多副本(NWR)等。 3. **元数据管理**:记录数据分片的位置、状态等信息,以便于数据的查找和恢复。元数据通常存储在一个中心化的元数据服务器或者分布式元数据管理系统中。 4. *...

    山东大学nosql期末笔记.pdf

    NWR(N-Way Replication)是分布式系统中的一种容错机制,要求 N 大于等于 3。 两阶段提交协议是分布式事务的一种解决方案,包括 prepare 和 commit 两个阶段。 时间戳是分布式系统中的一种版本控制机制,每个节点...

    AmazonDynamo系统架构

    Amazon平台是一个由数百服务组成的面向服务的架构,其秉承高度去中心化、松散耦合...但是,是牺牲C满足A,还是牺牲A满足C,可以根据NWR模型来调配,以达到收益成本平衡。Dynamo内部有3个层面的概念:Key-Value:Key唯一

    山东大学非关系型数据库2017试题押题

    NWR(Number of Writers and Readers)模型是为了解决分布式系统中读写冲突问题而提出的。它允许在特定条件下多个写者同时进行操作,同时也支持多个读者同时访问。 - **W**:写者数量。 - **R**:读者数量。 #### ...

    山东大学软件学院2017-2018年非关系型数据库题目(回忆版).docx

    2. NWR模型(New, Write, Read)是分布式计算中用于处理数据复制的模型。在NWR模型中,如果要保证高可用性,通常采用的是写多份(W&gt;1)策略,比如W=3,这意味着每次写操作必须在至少三个节点上成功才能确认,这样...

    2018数据管理音频整理1

    大数据领域中,"2018数据管理音频整理1"涵盖了多个关键知识点,包括大数据的四个V(Volume、Variety、Velocity、Value),Memcached的内存替换策略,DynamoDB的高可用性和一致性模型,以及NWR理论和Vector Clock更新...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    nwr raft gossip 柔性事务(TCC) 一致性原理 CAP BASE 中间件 数据库 mysql 存储引擎 索引 锁 oracle db2 缓存 redis 数据结构 持久 复制 cas 单线程 memcache eacache Tair 消息队列 ...

    swift介绍.pptx

    这种冗余机制遵循 NWR(Number of Writes and Reads)策略,即写操作和读操作所需的副本数,确保数据的一致性和安全性。通过这种方式,即使某个节点发生故障,Swift 也能确保数据的持久性和可用性。 综上所述,...

    云计算第三版精品课程配套PPT课件含习题(28页)第8章 OpenStack 开源虚拟化平台(四).pptx

    Swift是OpenStack的一个关键组件,它提供了大规模、分布式、高可用的对象存储解决方案。 8.3章节首先介绍了Swift的主要特性,包括其高度可扩展性和容错性。Swift设计的目标是支持海量数据的存储,同时能够处理大量...

Global site tag (gtag.js) - Google Analytics