Skip to content

状态机复制

State machine replication · SMR

让多个副本按同一确定顺序执行命令,从而实现容错服务。

形式陈述

若所有副本从相同初始状态开始,状态转移是确定的,并按相同全序执行同一命令序列,则每一步后副本状态和输出都相同。共识或原子广播用于让正确副本就命令顺序达成一致。

直觉

与其不断同步整个状态,不如让副本先对“接下来执行哪条命令”取得一致,再各自在本地重放同一计算。

例子与边界

复制日志、配置服务和数据库元数据常采用该方法。读取系统时间、随机数或外部服务会引入非确定性,必须转化为已排序输入或通过协议协调。

推论与应用

Paxos 与 Raft 常作为复制日志的共识层;状态机复制进一步支撑高可用键值存储、协调服务和区块链执行模型。

参考资料
  • Fred B. Schneider, “Implementing Fault-Tolerant Services Using the State Machine Approach,” 1990.
  • Leslie Lamport, “The Part-Time Parliament,” 1998.