谁可以从高级视图谈论主备份和状态机复制之间的关系?
在我看来,主备份是一种状态机复制。但它需要额外的机制来确保所有复制在主节点上达成一致,这在通用状态机复制中是不必要的......
是不是?或者有任何想法?
答案 0 :(得分:3)
主备份和状态机复制有什么区别?
状态机是处理一系列请求的软件组件。对于每个已处理的请求,它可以修改其内部状态并生成回复。状态机在某种意义上是确定性的,给定两次运行,它接收相同的请求序列,它总是进行相同的内部状态转换并产生相同的回复。
状态机复制系统是一个客户机 - 服务器系统,确保每个状态机副本执行相同的客户机请求序列,即使这些请求由客户端同时提交并由副本以不同的顺序接收。副本使用像Paxos这样的一致性算法同意客户端请求的执行顺序。可以按任何顺序执行同时发送并在时间上重叠的客户端请求。如果领导者失败,执行恢复的新领导者可以随意重新排序任何未提交的请求,因为它尚未完成。
对于主要备份系统(例如Zookeeper),副本同意增量(增量)状态更新的应用顺序,增量(增量)状态更新由主副本生成并发送给其关注者。与客户端请求不同,状态更新必须以主要的原始初始状态开始,以主要的确切原始生成顺序应用。如果主服务器发生故障,执行恢复的新主服务器不能随意重新排序未提交的状态更新,或者从不同的初始状态开始应用它们。
总之,关于状态更新(主备份系统)的协议要求比客户端请求(对于状态机复制系统)的协议更严格的排序保证。