`
iunknown
  • 浏览: 407968 次
社区版块
存档分类
最新评论

一个常见的paxos疑问

阅读更多
原文在 http://stackoverflow.com/questions/14435646/paxos-value-choice/14472334#14472334

引用
Now, let's take a hypothetical example that people often give, and which they think breaks Paxos. Suppose we have three Acceptors A1, A2, and A3. A1 and A2 have both accepted value ABC at round 1 and A3 has chosen XYZ at round 2 (ie. from a different proposer). We can see that A1 and A2 form a majority and that ABC has been "chosen."

Continuing along this hypothetical example, a proposer sends Prepare(3) and receives back responses from A2 and A3, viz Promise(ABC @ 1) and Promise(XYZ @ 2). The Proposer sees XYZ has the highest round, and sends that along in the Accept phase, overwriting ABC on the other hosts. And viola, Paxos is broken, Right?


引用
No. The problem is with the start state, which is impossible. Let me show you why.

First, some propositions, which are key to Paxos running correctly:

Proposition A: For A1 and A2 to have the value ABC @ 1, a proposer must have sent Accept(ABC @ 1) which means it must have received a majority of Promises in response to sending Prepare(1).

Proposition B: For A3 to have the value XYZ @ 2, a proposer must have sent Accept(XYZ @ 2) which means it must have received a majority of Promises in response to sending Prepare(2).
分享到:
评论

相关推荐

    Node.js-GryadkaJS:一个基于Paxos算法的Redis复制层支持动态重新配置

    在本文中,我们将深入探讨一个基于Node.js的项目——GryadkaJS,这是一个针对Redis复制层的独特实现,它利用了Paxos算法来支持动态重新配置。 GryadkaJS的核心特性是其采用的Paxos算法。Paxos是一种分布式一致性...

    cheap-paxos.pdf_Paxos算法_

    这篇名为"cheap-paxos.pdf"的论文深入探讨了Paxos算法的一个变种——廉价Paxos(Cheap Paxos),它在保持Paxos算法基本性质的同时,优化了性能,降低了复杂性,尤其适用于大规模分布式系统。 Paxos算法最初由Leslie...

    Paxos implementation

    Paxos算法的一个关键思想是它能够处理所谓的fail-stop故障模型,该模型假设系统中节点的故障表现为完全停止,不会出现拜占庭将军问题,即节点不会错误地传递错误信息。此外,Paxos算法还必须能够处理消息的延迟或...

    Fast Paxos(pdf)

    Fast Paxos是经典Paxos算法的一个扩展,它能够在仅需两次消息传递后,就让进程学习到被选定的值,而不是传统共识算法所需的三次消息延迟。 #### 经典Paxos算法 经典Paxos算法是用于解决分布式系统中一致性问题的...

    Paxos图解(xmid图解)

    总结来说,Paxos算法是一个强大的工具,为分布式系统提供了一种在不可靠网络环境下的解决方案,保证了数据的一致性和系统的可用性。通过理解Paxos的基本原理、阶段以及优化策略,我们可以更好地设计和实现高可用的...

    云计算:C++实现的可直接运行paxos算法

    总的来说,这个C++实现的Paxos算法项目为学习和研究Paxos提供了一个实践平台,对于理解分布式系统的一致性协议有着重要的价值。无论是学术研究还是实际开发,都能从中受益。通过动手操作和调试代码,我们可以更好地...

    Paxos算法.pdf

    - **提案**:在Paxos算法中,任何参与者都可以发起一个提案。 - **编号**:每个提案都有一个唯一的编号,这些编号通常按时间顺序递增。这样可以确保新提案总是具有更高的优先级。 ##### 2.2 环境假设 - **可信环境...

    《Paxos Made Simple》分布式一致性协议Paxos论文翻译

    分布式一致性协议Paxos是计算机科学领域中一个至关重要的概念,尤其在构建高可用、高可靠的分布式系统时,它的作用不言而喻。《Paxos Made Simple》是由Leslie Lamport所著的一篇经典论文,它以简洁易懂的方式阐述了...

    从paxos到zookeeper

    它的核心思想是在存在网络延迟、节点故障等不确定因素的环境中,确保集群中的大多数节点能够就一个提案达成一致。PAXOS分为多个阶段,包括提议、投票和决定,通过多数派机制来保证提案的最终确定性。在实际应用中,...

    paxos-simple-Copy.pdf

    Paxos算法需要满足的几个安全要求包括:只有被提出的值才可能被选定、只能选定一个值,以及进程只能在值真正被选定后才能学习到值。 Paxos算法在处理分布式系统共识问题时,将算法中的角色分为三类:提出者...

    一种基于Paxos算法的高可用分布式锁服务系统.pdf

    使用Fast-Leader-Election算法来选举Leader节点,确保锁服务系统在任何时候都具有一个主控节点来协调各个节点间的同步。同时,系统设计了数据初始化和数据写同步算法,以确保数据状态的正确性。实验结果表明,该系统...

    paxos simple

    - **准确性**:一个进程永远不会获知一个未真正被选中的值。 本节不尝试规定具体的活锁(liveness)需求,但目标是确保某个被提议的值最终会被选择,且如果一个值已经被选择,那么进程最终能够获知该值。 我们将...

    Revisiting the Paxos algorithm

    本文不仅提供了Paxos算法的新表述,还基于形式化的分解为几个相互作用的组件,并包含了一个正确性证明以及时间性能和容错能力的分析。 #### I/O自动机模型与通用定时自动机 I/O自动机是一种简单的状态机,其转换由...

    从PAXOS到ZOOKEEPER分布式一致性原理与实践

    PAXOS算法包括提议者、接受者和学习者三个角色,通过多轮提案和应答过程,最终形成一个全局一致的决策。 ZOOKEEPER是Apache的一个开源项目,它是为了解决分布式环境中的命名服务、配置管理、组服务、分布式同步等...

    基于paxos的源码

    2. **Accept阶段**: Proposer根据Acceptor返回的信息,选择一个最高的已接受提议或创建一个新的提议(编号为n+1,值为已接受提议的值或任意值)。然后,Proposer向所有Acceptor发送Accept请求,包含新的提议编号和值...

    Paxos算法详解.ppt

    Paxos算法详解.ppt

    从Paxos到Zookeeper分布式一致性原理与实践包括源码

    《从Paxos到Zookeeper:分布式一致性原理与实践》这本书深入浅出地探讨了分布式系统中的一个重要概念——一致性,以及如何在实际操作中通过Paxos算法和Zookeeper实现这一概念。分布式一致性是分布式系统设计的核心,...

Global site tag (gtag.js) - Google Analytics