闭卷重建为什么墙上时间不等于真相的故障模型、消息状态、不变量与恢复边界。
分布式系统与可靠服务 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建 happens-before 与并发事件的故障模型、消息状态、不变量与恢复边界。
闭卷重建Lamport逻辑时钟的故障模型、消息状态、不变量与恢复边界。
闭卷重建向量时钟与并发检测的故障模型、消息状态、不变量与恢复边界。
闭卷重建物理时钟、租约与不确定区间的故障模型、消息状态、不变量与恢复边界。
闭卷重建全序广播与确定性状态机的故障模型、消息状态、不变量与恢复边界。
闭卷重建实验:逻辑时钟与因果比较的故障模型、消息状态、不变量与恢复边界。
机制:进程内程序序、消息发送到接收及传递闭包定义因果先后;无法推出先后的事件并发;实验:画两个客户端并发修改同一键的事件图,标出可比较与不可比较事件;边界:并发不是物理同时,观察不到因果路径也不等于事件时间戳相同。
机制:不同节点时钟存在偏移、漂移和校时跳变,分布式正确性不能只靠本地时间戳决定先后;实验:让三个节点以不同偏移记录同一消息链,比较日志排序与真实因果关系;边界:NTP改善时间精度但不提供零误差全局时钟,超时也不是事件未发生的证明。
机制:每节点维护向量分量,发送携带向量,接收逐项取最大再递增,可判断因果或并发;实验:比较四组版本向量并输出before、after、equal或concurrent;边界:向量维度随参与者增长,成员变化与版本压缩需要额外机制。
机制:本地事件递增,发送携带时钟,接收取max后加一,从因果先后推出时钟值递增;实验:输入多节点本地/发送/接收事件,逐步输出逻辑时钟并检测非法接收;边界:L(a)<L(b)不能反推a导致b;用节点ID打破平局只给全序,不创造因果。
机制:所有副本以同样顺序应用同样确定性命令,才能从相同初态得到相同状态;实验:给同一命令集合的两种到达序,先排序后应用并比较副本结果;边界:全序不自动保证命令合法,非确定性时间、随机数和外部I/O会让状态机分叉。
机制:带误差界的时钟可把当前时间表达为区间,租约必须把漂移和消息延迟纳入安全余量;实验:给时钟误差和租约截止计算最早/最晚失效,再推演主从切换重叠风险;边界:只用本地now<expiry可能产生双主;暂停进程后旧租约持有者也可能恢复。
机制:实现Lamport推进和向量比较,保存每条消息前后的节点状态;实验:以正常链、并发、重复消息和非法节点四类输入验证模型;边界:模拟顺序必须显式;把输入行顺序当网络真实顺序会掩盖并发。