目录
之前文章介绍了2PC和3PC一致性协议,本文将继续介绍另一个Paxos算法
前置知识
对于分布式一致性算法,有两个最重要的属性:
- 安全性:指那些需要保证永远都不会发生的事情
- 活性:指那些最终一定会发生的事情
问题描述
假设有一组可以提出提案的进程集合,对于一致性算法,要求:
- 这些提案最终只有一个被选定
- 当一个提案被选定后,进程可以获取被选定的提案信息
对于Paxos,安全性要求有:
- 只有被提出提案才能被选定
- 只有一个值会被选定
- 如果某个进程认为某个提案被选定了,那这个提案必须真的是被选定的那个
活性要求是:保证最终有一个提案被选定
三种参与角色:
Proposer:提案提出者
Acceptor:提案接受批准者
Learner:只获取最终被批准的提案
提案的选定
规则:Proposer向一个Acceptor集合发送提案,集合中的每个Acceptor都可能会accept(批准)该提案,当有足够多的Acceptor批