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