深入理解Multi - Paxos、Dynamic Paxos与Cheap Paxos算法
1. Multi - Paxos算法概述
Multi - Paxos算法是Paxos算法在状态机复制场景中的应用。在客户端 - 服务器系统里,一组服务器副本通过执行客户端发送的请求并返回相应回复,为客户端提供服务。此时,客户端部分承担提议者的角色,而所有服务器副本则作为接受者。服务器副本(接受者)需要达成一致的是客户端请求的全序关系,这通过运行一系列Paxos算法实例来实现,每个实例被分配一个序列号,代表所选请求的全序。
客户端仅部分承担提议者角色,因为它只能提出值(即发送的请求),但没有相应的提案编号。服务器副本中的一个需承担提议者的另一半角色,这个特殊副本被称为协调者、领导者或主副本。主副本本质上就是Paxos算法中的提议者,它负责选择客户端提供的值,并将所选值传播给其他副本(备份副本)。
通常,系统部署初期会指定一个服务器副本为主副本。只有当主副本出现故障或被其他副本怀疑故障时,才会选举新的主副本。只要系统中只有一个主副本,就保证了没有副本会向主副本报告已接受任何提案,主副本可以选择任何值(请求),因此在正常操作时(即只有一个主副本的系统中)可以省略Paxos算法的第一阶段(准备阶段)。新主副本选举需要完整的Paxos算法,且仅在新主副本选举后运行一次。
正常操作时,主副本收到多数副本的P2b消息后即可执行请求。以下是Multi - Paxos正常操作的流程:
- 客户端发送请求。
- 主副本向备份副本发送P2a消息。
- 备份副本回复P2b消息。
- 主副本收到多数P2b消息后执行请求并提交。
- 主副本向客户端发送回复
超级会员免费看
订阅专栏 解锁全文

1576

被折叠的 条评论
为什么被折叠?



