A COURSE IN DISTRIBUTED SYSTEMS / 01
发生故障时,
什么仍有保证?
当消息延迟、节点停止、操作并发时,系统究竟还能承诺什么?先建立模型,再检查真实实验,最后亲手改变条件。
原理示意 / 3 个投票者 · 多数派 2
真实进程结果单独保存。
07连贯章节
04 × 03实验家族 × 基线重复
etcd 3.6.6固定实现版本
1 host真实进程,有界结论
按依赖关系建立概念
只需了解进程、文件和请求响应编程,不要求业务背景。1–3 章建立模型,4–6 章应用模型,7 章串起证据链。
01020304050607
系统与故障假设
先说明故障模型,再谈能做出的承诺。
25–40 min · 建议学习时间,非测量值时间、因果与并发历史
区分时间戳与真正的顺序约束。
30–45 min · 建议学习时间,非测量值复制与一致性模型
定义共享对象允许哪些观测。
35–50 min · 建议学习时间,非测量值状态机复制、Raft 与多数派
跟踪选主、提交与恢复中的共同决策。
45–60 min · 建议学习时间,非测量值RPC、未知结果与幂等
避免一次重试变成第二次副作用。
35–50 min · 建议学习时间,非测量值租约、锁与 Fencing Token
在接收资源处阻止旧代次的迟到写。
40–55 min · 建议学习时间,非测量值故障恢复与证据
核对未知结果,保留结论的适用范围。
30–45 min · 建议学习时间,非测量值先知道范围,再看结果。
集群是同机三个真实进程;故障来自自己进程的崩溃/暂停和应用响应延迟。浏览器检查器是另一个小模型;两者都不能证明多机性能。
检查、修改、复现。
阅读无需安装。需要探索不同执行顺序时,再运行配套代码。
连接不同层次
继续学习本地事务、流式状态、计算恢复与运行时取消,同时保留各自的保证边界。