我试图理解paxos和两阶段提交之间的区别,作为在多台机器之间达成共识的手段。两阶段提交和三相提交非常容易理解。似乎3PC也解决了2PC中阻塞的故障问题。所以我不太了解Paxos正在解决什么。有人能向我阐明Paxos究竟能解决什么问题吗?
最佳答案
如果事务管理器失败,则2PC将阻塞,需要人工干预才能重新启动。 3PC算法(有几种这样的算法)在原始管理器发生故障时尝试通过选举新的事务管理器来修复2PC。
只要大多数流程(经理)正确,Paxos都不会阻塞。 Paxos实际上解决了更普遍的共识问题,因此,它也可以用于实现事务提交。与2PC相比,它需要更多消息,但可以抵抗管理器故障。与大多数3PC算法相比,Paxos提供了一种更简单,更有效的算法(最小消息延迟),并被证明是正确的。
Gray和Lamport在一个出色的paper“交易 promise 共识”中比较了2PC和Paxos。
(根据彼得的回答,我认为他正在将2PC与2PL(两相锁定)混合使用。)
关于database - Paxos与两阶段提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27304887/