Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

A.1 母本与主题覆盖矩阵

1 怎么读

这张表有两个用途:

  1. 主题覆盖:任务书要求的数据面主题,每一项都必须能在正文找到一个可跳转的节;tools/check_coverage.py 会逐行核对锚点是否存在。
  2. 母本对应:四本母本(谢希仁、张彦飞、《Python 网络编程》、《Linux 系统与内核》)的哪些章节被本书引用、哪些明确不重复。母本不覆盖的分布式协议,标为「本书自编 + 论文/规范」。

「深度」列的含义:

  • 完整:概念、机制、失败路径、观测、例子都在正文;
  • 精选:核心机制在正文,冷门细节指路;
  • 背景:只借用事实/视角,不展开;
  • 交叉引用:本书不写,指向 Linux 书对应篇章。

2 主题覆盖(55 项,缺口 0)

#主题本书落点锚点深度说明
1请求路径与延迟预算1.1、1.4sec-distributed.1.1.1完整12 个 hop、逐跳预算、p99 放大
2部分失败与 unknown 状态1.3、1.5、1.6sec-distributed.1.1.5完整七类失败、状态机、超时三种真相
3超时与 deadline 传播2.2sec-distributed.1.2.2完整绝对 deadline、逐跳换算、取消语义
4重试、退避与抖动2.3sec-distributed.1.2.3完整full jitter、错误分类、hedged request
5重试预算与放大倍数2.5sec-distributed.1.2.5完整正反馈、同步重试、止损顺序
6幂等键与请求指纹2.4sec-distributed.1.2.4完整键粒度、规范化、唯一约束
7去重表与状态机12.3、12.5sec-distributed.5.12.5完整calls/effects/audit、claim、succeed
8背压与并发上限2.6sec-distributed.1.2.6完整Little’s law、有界队列、拒绝策略
9限流与过载保护2.7sec-distributed.1.2.7完整令牌桶、429/503、Retry-After
10单主复制3.1、3.2sec-distributed.2.3.2完整同步/异步/半同步、RPO/RTO
11多主复制与冲突解决3.5、3.6sec-distributed.2.3.5完整LWW、版本向量、CRDT
12无主复制与 quorum3.7sec-distributed.2.3.7完整R+W>N、读修复、hinted handoff、Merkle
13复制延迟与读己之写3.8sec-distributed.2.3.8完整lag 来源、会话保证
14线性一致性4.2sec-distributed.2.4.2完整实时序、全序、判定与反例
15顺序一致性4.3sec-distributed.2.4.3完整与线性一致的差异
16因果一致性与会话保证4.4sec-distributed.2.4.4完整happens-before、RYW、单调读
17最终一致性与收敛4.5sec-distributed.2.4.5完整收敛条件、反熵、读修复
18CAP 与 PACELC 的精确表述4.6sec-distributed.2.4.6完整分区时选什么、无分区时的 L/C
19Paxos5.3sec-distributed.2.5.3完整prepare/promise/accept/accepted
20Multi-Paxos 与活锁5.4sec-distributed.2.5.4完整双提案者互锁、稳定 leader
21Raft 选举5.5sec-distributed.2.5.5完整term、投票、随机超时、选举限制
22Raft 日志复制与提交5.6sec-distributed.2.5.6完整prevLogIndex/term、当前 term 提交
23成员变更与快照5.7sec-distributed.2.5.7精选单步/联合共识、快照截断
24线性一致读(ReadIndex/lease)5.8、13.7sec-distributed.2.5.8完整ReadIndex、lease read、follower read
25ACID 与事务边界6.1sec-distributed.3.6.1完整C 是应用不变量、短事务
26隔离级别与异常6.2sec-distributed.3.6.2完整脏读/不可重复/幻读/写偏斜
27MVCC 可见性6.3、6.4sec-distributed.3.6.3完整版本链、read view、xmin/xmax
28分布式事务 2PC/TCC/Saga6.6sec-distributed.3.6.6完整阻塞、空回滚、补偿、选型
29Outbox 与幂等消费6.7sec-distributed.3.6.7完整双写、CDC、去重
30队列与日志的区别7.1sec-distributed.3.7.1完整删除 vs 保留、重放
31投递语义7.2sec-distributed.3.7.2完整最多/至少/有效一次
32分区、顺序与消费者组7.3sec-distributed.3.7.3完整分区键、顺序范围、rebalance
33offset 提交与再平衡7.4sec-distributed.3.7.4完整提交窗口、重复投递
34Kafka ISR/acks/事务7.5sec-distributed.3.7.5完整acks=all、min.insync、幂等生产者
35CDC 与事件溯源7.6sec-distributed.3.7.6完整outbox、binlog、重放
36对象存储语义8.1、8.2sec-distributed.3.8.1完整ETag、条件写、多段上传、强一致
37缓存模式与一致性8.3、8.4sec-distributed.3.8.3完整cache-aside、双写、延迟双删
38缓存击穿/穿透/雪崩8.5sec-distributed.3.8.5完整singleflight、空值、随机 TTL
39CDN 与边缘缓存8.6sec-distributed.3.8.6完整anycast、cache key、purge
40分布式锁9.1、9.2sec-distributed.4.9.2完整SET NX PX、Lua、续期、主从丢锁
41租约与 fencing token9.6、9.7sec-distributed.4.9.6完整单调 token、资源端校验、GC 停顿
42选主与分裂脑9.5sec-distributed.4.9.5完整bully、Raft、lease、旧主自停
43trace 与上下文传播10.2sec-distributed.4.10.2完整traceparent、span、采样
44指标与分位数10.3sec-distributed.4.10.3完整RED/USE、histogram、exemplar
45结构化日志10.4sec-distributed.4.10.4完整字段、trace id、成本
46SLO 与错误预算10.6sec-distributed.4.10.6完整SLI/SLO、burn rate
47回放与影子流量10.7sec-distributed.4.10.7完整确定性重放、副作用隔离
48容量与 Little’s law11.1sec-distributed.4.11.1完整L=λW、headroom
49排队与利用率曲线11.2sec-distributed.4.11.2完整1/(1-ρ)、变异性
50压测方法11.3sec-distributed.4.11.3完整基线、梯度、开放/闭环
51降级、熔断与舱壁11.5sec-distributed.4.11.5完整熔断状态机、隔离、优先级
52故障演练与爆炸半径11.7sec-distributed.4.11.7完整假设、注入、回滚、game day
53项目一:幂等工具调用后端12.1–12.17sec-distributed.5.12.1完整可运行服务、7 测试、3 类故障
54项目二:小型复制 KV13.1–13.17sec-distributed.5.13.1完整三节点、选举、复制、一致性读
55项目二的一致性读(ReadIndex/lease/stale)13.7、13.13sec-distributed.5.13.7完整三条读路径、分区旧主、测试证据

校验:python3 tools/check_coverage.py。任何一行锚点不存在、或 REQUIRED 主题缺失,都会退出非 0。

3 母本对应

3.1 谢希仁《计算机网络》第 8 版

母本章节本书落点锚点处理
谢希仁第 1 章 概述(分层、协议)1.1、1.11sec-distributed.1.1.1背景:只借用分层视角;不重写体系结构
谢希仁第 5 章 运输层(TCP/UDP)1.1、1.8、2.2sec-distributed.1.2.2交叉引用:TCP 状态机、拥塞控制见 Linux 书 4.4–4.6
谢希仁第 6 章 应用层(HTTP/DNS)8.6、12.4sec-distributed.3.8.6背景:HTTP 语义只用于缓存/重试;报文细节不重写
谢希仁第 7 章 网络安全2.2、8.1sec-distributed.1.2.2背景:只提 mTLS/鉴权边界,不写 TLS 握手
谢希仁第 8–10 章(音视频、无线、下一代互联网)——淘汰:与数据面主线无关

3.2 张彦飞《深入理解 Linux 网络》

母本章节本书落点锚点处理
张彦飞第 4–5 章(TCP 连接、收发)1.1、2.2、12.6sec-distributed.5.12.6背景:连接复用/超时只引用;不重写内核路径
张彦飞第 6 章(连接队列、握手)1.1、1.8sec-distributed.1.1.1交叉引用:队列/握手细节见 Linux 书 4.5、4.11
张彦飞第 7–8 章(socket、epoll)12.6、13.9sec-distributed.5.13.1背景:只讲用户态服务模型;epoll 实现不重写
张彦飞第 9–10 章(性能、容器网络)11.1、11.9sec-distributed.4.11.1精选:容量/观测借用指标;容器网络见 Linux 书第 5 篇

3.3 《Python 网络编程》

母本章节本书落点锚点处理
Python 网络编程socket/HTTP 客户端与服务端12.4、12.8、13.6sec-distributed.5.12.8精选:工程风格;代码全部重写
Python 网络编程并发服务器/线程12.6、12.9sec-distributed.5.12.9精选:只讲与本项目相关的线程/队列
Python 网络编程协议解析/超时2.2、2.3sec-distributed.1.2.3背景:不复制示例,不写 socket API 手册

3.4 《Linux 系统与内核》

母本章节本书落点锚点处理
Linux 书第 4 篇 4.1–4.12(网络)1.1、2.2、8.6、12.6sec-distributed.1.1.1交叉引用:TCP/IP、socket、epoll、HTTP/DNS/TLS 不重写
Linux 书第 5 篇 5.1–5.6(容器/K8s)11.6、11.7sec-distributed.4.11.7交叉引用:容器/编排基础不重写
Linux 书第 2/3 篇(系统编程/内核)12.6、13.8sec-distributed.5.13.8背景:线程/文件/持久化只借用概念

3.5 本书自编 + 论文/规范

材料本书落点锚点处理
Raft 论文(Ongaro & Ousterhout, 2014)5.5–5.8、13.4–13.7sec-distributed.2.5.5自编讲解 + 代码;不复制论文原文/图
Paxos 论文(Lamport, 1998/2001)5.3–5.4sec-distributed.2.5.3自编简化模拟器;不复制原文
Dynamo 论文(DeCandia et al., 2007)3.7sec-distributed.2.3.7只引用 quorum/vector clock 思想
Spanner 论文(Corbett et al., 2012)6.10sec-distributed.3.6.10只引用 TrueTime/2PC 公开结论
Jepsen: MongoDB 3.4(2017)4.10sec-distributed.2.4.10只引用公开结论 + 链接
Jepsen: etcd 3.4.3(2020)5.11、9.9sec-distributed.2.5.11只引用公开结论 + 链接
Stripe Idempotent requests12.14sec-distributed.5.12.14只引用公开接口语义
AWS S3 2017 / GitHub 2018 / Cloudflare 2019 / AWS 2021 / GitLab 20172.9、3.11、8.9、11.10、10.10sec-distributed.1.2.9只引用官方复盘事实 + 链接

缺口检查:以上主题表 55 行全部有锚点;母本表中「淘汰」行不需要落点。check_coverage.py 只对主题表做强制校验,母本表用于人工审计。