Skip to content

视图戳复制

Viewstamped Replication · VR

用视图变更和主副本日志在崩溃故障下复制状态机的协议。

条目类型
模型

形式陈述

视图戳复制(VR)是实现复制日志的崩溃容错协议。每次 view change 都按 view 规则选出新的 primary,可视为协议内部的一次领导者选举;在每个 view 中,由 primary 为客户端操作分配递增序号并复制到quorum;操作达到足够副本后提交。primary 失效时执行 view change,新 primary 收集 quorum 状态并选择必须保留的日志前缀。相交集合中的持久记录保证已提交操作不会在视图切换中消失。

直觉

VR 用 view 编号区分历代 primary,用 operation 编号定位日志顺序。正常视图中 primary 只在操作获得 quorum 后提交;视图变更从相交 quorum 收集日志,选择包含最先进安全前缀的新 primary 状态。由于任意两个 f+1 quorum 在 2f+1 副本中相交,已获提交证据的操作不会在新视图中全部消失。

例子与边界

2f+1 副本可容忍 f 个崩溃。客户端请求需带唯一编号以避免重试导致重复执行。视图号和操作号共同形成 viewstamp。VR 处理崩溃故障,不自动抵抗拜占庭副本。

三副本容忍一个崩溃。primary 将操作号 10 复制到自身与一个 backup 后形成多数;即使随后崩溃,新视图的两个参与者至少包含这两个中的一个,view-change 记录可把操作 10 带入新日志。客户端重试同一请求时,唯一 client-id/request-number 使副本返回缓存结果而不重复执行。若副本可发送冲突伪造日志,崩溃版 VR 的 quorum 假设不足,需要 BFT 协议。

推论与应用

VR 用 view 编号、operation 编号、正常复制与 view change 具体维护复制日志,再由状态机复制应用 committed 操作。它与 Paxos、Raft共享 quorum 相交这一安全骨架;VR 的语义中心是 primary 更替时怎样继承证据,而不是再次定义复制日志接口。

安全依赖日志证据跨视图保留,活性则依赖最终稳定的时序与正确 primary。工程实现还需 checkpoint、日志截断、客户端去重和成员配置变更,才能把论文级安全前缀变成持久服务。

参考资料
  • Barbara Liskov and James Cowling, Viewstamped Replication Revisited, MIT-CSAIL-TR-2012-021, 2012,full technical report。
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 1–25。
关系图谱16 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系