Kee*_*eto 29 database distributed-computing paxos
我试图理解paxos和两阶段提交之间的区别,作为在多台机器之间达成共识的手段.两阶段提交和三阶段提交很容易理解.似乎3PC解决了在2PC中会阻塞的故障问题.所以我真的不明白Paxos正在解决什么问题.任何人都能说明Paxos究竟解决了什么问题吗?
dan*_*how 33
如果事务管理器失败,则需要2PC块,需要人工干预才能重新启动.3PC算法(有几种这样的算法)尝试通过在原始管理器失败时选择新的事务管理器来修复2PC.
只要大多数流程(经理)是正确的,Paxos就不会阻止.Paxos实际上解决了更普遍的共识问题,因此,它也可以用于实现事务提交.与2PC相比,它需要更多消息,但它对管理器故障具有弹性.与大多数3PC算法相比,Paxos提供了更简单,更有效的算法(最小消息延迟),并且已被证明是正确的.
Gray和Lamport在题为"交易提交上的共识" 的优秀论文中比较了2PC和Paxos .
(在彼得的回答中,我认为他正在将2PC与2PL混合(两相锁定).)
小智 6
2-PC是最传统的事务提交协议,为事务原子性的核心提供支持。但它本质上是阻塞的,即如果事务管理器/协调器在中间发生故障,它将导致协议阻塞并且没有进程会意识到这一点。需要手动干预来修复协调器。
而Paxos是一个分布式共识协议,有多个这样的协调者,如果大多数协调者同意交易完成,那么它就成为一个成功的原子交易。
您应该阅读https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2003-96.pdf 以了解这两种协议如何以更精细的方式区分。在同一篇论文中,Gray 和 Lamport 还引入了一种协议,即 Paxos 和 2-PC 的组合,以实现更快的性能。