Paxos는 Lamport에 의해 제안된 아주 오래된 분산 시스템 합의 알고리즘이다. 비잔틴 노드가 없다고 가정하기 때문에, 다수결의 노드가 동의하는 값에 합의된 값이 된다. (비잔틴 노드가 있는 경우는 비잔틴 paxos 라는 또 다른 버전으로 처리할 수 있다.)
Roles
Paxos에는 세가지 주체들이 있는데, 하나의 노드가 여러 역할을 수행할 수도 있다.
1) Proposer
- Proposal을 보내는 주체로, 특정 값이나 커맨드를 제안하는 역할을 한다.
2) Acceptors
- Proposer로부터 제안을 받아들일지 받아들이지 않을지 결정한다.
- 이들끼리 합의를 통해 특정 값을 받아들이기로 합의한다.
3) Learners
- Acceptor들에 의해 합의된 값을 전달받는다.