闭卷重建共识究竟解决什么的故障模型、消息状态、不变量与恢复边界。
分布式系统与可靠服务 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建多数派交集与任期的故障模型、消息状态、不变量与恢复边界。
闭卷重建Raft领导者选举的故障模型、消息状态、不变量与恢复边界。
闭卷重建Raft日志复制与提交的故障模型、消息状态、不变量与恢复边界。
闭卷重建Paxos提案、承诺与接受的故障模型、消息状态、不变量与恢复边界。
闭卷重建成员变更与脑裂防护的故障模型、消息状态、不变量与恢复边界。
闭卷重建实验:Raft选举与日志匹配的故障模型、消息状态、不变量与恢复边界。
机制:任意两个多数派必相交,任期/提案号让较新领导权覆盖旧权力,节点在一个任期只投一次票;实验:枚举3、5、7节点多数派,证明不同决定必须经过共同节点;边界:把副本数设成偶数不会增加相同多数规则下的故障容忍度,反而提高仲裁规模。
机制:参与者在崩溃和消息延迟下对一个或一串值达成不可逆一致决定,同时满足一致性、有效性和终止条件;实验:把主节点选举、配置变更和普通复制分别映射到共识对象;边界:共识不解决业务规则、拜占庭故障或网络永不恢复时的可用性。
机制:领导者用prevLogIndex/Term验证前缀,冲突时回退覆盖;当前任期条目被多数复制后推进提交索引;实验:给五节点日志与AppendEntries结果更新nextIndex和matchIndex;边界:多数复制旧任期条目不能单独按条目计数提交,需由当前任期提交规则间接带上。
机制:随机选举超时减少冲突,候选者递增任期、先投自己并向多数请求投票,日志新旧限制保护已提交项;实验:逐事件推演三节点同时超时、分票、重试和成功选举;边界:收到更高任期必须退回跟随者;获得旧任期延迟投票不能恢复旧领导权。
机制:配置变化必须让旧新仲裁安全重叠,Raft联合共识或受控单步变更避免两个独立多数;实验:推演五节点换两节点时的一步替换和联合配置差异;边界:人工强制双侧恢复可能制造双主;数据中心隔离时宁可一侧停止写。
机制:提议者先以更高编号获得多数承诺,再必须选择已接受编号最大的值,否则可选自己的值;实验:对三接受者的prepare/promise/accept序列判断哪个值可安全提出;边界:Paxos的多数阶段不是简单投票重来;忽略已接受值会破坏安全。
机制:实现任期投票、日志新旧比较及AppendEntries前缀检查,输出领导结果和修复位置;实验:覆盖正常多数、分票、更高任期和冲突日志四类测试;边界:代码模型只验证崩溃故障下核心不变量,不代表完整Raft实现。