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.3 论文、规范与公开复盘索引

只列本书实际引用或建议延伸阅读的材料。链接以官方/原始来源优先;产品文档会变,引用时注明版本或访问时间。

1 共识与复制

材料为什么读链接
L. Lamport, The Part-Time Parliament (1998)Paxos 的原始论文;理解 prepare/accept 的安全性https://lamport.azurewebsites.net/pubs/lamport-paxos.pdf
L. Lamport, Paxos Made Simple (2001)更短的 Paxos 描述https://lamport.azurewebsites.net/pubs/paxos-simple.pdf
D. Ongaro, J. Ousterhout, In Search of an Understandable Consensus Algorithm (2014)Raft 原始论文;选举、日志复制、成员变更https://raft.github.io/raft.pdf
D. Ongaro, Consensus: Bridging Theory and Practice (2014)Raft 博士论文;实现细节与证明https://web.stanford.edu/~ouster/cgi-bin/papers/OngaroPhD.pdf
M. Fischer, N. Lynch, M. Paterson, Impossibility of Distributed Consensus with One Faulty Process (1985)FLP 不可能性;理解为什么需要超时/随机化https://dl.acm.org/doi/10.1145/3149.214121
G. DeCandia et al., Dynamo: Amazon’s Highly Available Key-value Store (2007)无主复制、quorum、vector clock、 hinted handoffhttps://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
J. C. Corbett et al., Spanner: Google’s Globally-Distributed Database (2012)TrueTime、外部一致性、2PC 的组合https://research.google/pubs/pub39966/

2 一致性与验证

材料为什么读链接
M. Herlihy, J. Wing, Linearizability: A Correctness Condition for Concurrent Objects (1990)线性一致的形式定义https://dl.acm.org/doi/10.1145/78969.78972
L. Lamport, How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs (1979)顺序一致的定义https://dl.acm.org/doi/10.1109/TC.1979.1675439
P. Bailis et al., Highly Available Transactions: Virtues and Limitations (2014)事务与一致性模型的组合边界https://www.vldb.org/pvldb/vol7/p181-bailis.pdf
S. Gilbert, N. Lynch, Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services (2002)CAP 的形式化证明https://dl.acm.org/doi/10.1145/564585.564601
D. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design (2012)PACELC 的提出https://www.cs.umd.edu/~abadi/papers/abadi-pacelc.pdf
Jepsen, MongoDB 3.4.0-rc3 (2017)陈旧读、丢失更新、时钟偏斜的公开分析https://jepsen.io/analyses/mongodb-3-4-0-rc3
Jepsen, etcd 3.4.3 (2020)Raft 实现的严格可串行化、watch 顺序与锁的互斥边界https://jepsen.io/analyses/etcd-3.4.3
P. Bailis, K. Kingsbury, The Network Is Reliable (2014)真实网络分区比想象中常见https://queue.acm.org/detail.cfm?id=2655736

3 事务、存储与消息

材料为什么读链接
H. Berenson et al., A Critique of ANSI SQL Isolation Levels (1995)隔离级别与异常的经典辨析https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-95-51.pdf
M. J. Cahill et al., Serializable Isolation for Snapshot Databases (2008)PostgreSQL SSI 的理论基础https://dl.acm.org/doi/10.1145/1376616.1376690
J. Gray, A. Reuter, Transaction Processing: Concepts and Techniques (1992)事务处理的系统教材书店/图书馆
H. Garcia-Molina, K. Salem, Sagas (1987)Saga 的原始论文与补偿语义https://dl.acm.org/doi/10.1145/38713.38742
P. Helland, Life beyond Distributed Transactions (2007)大规模系统为什么避免 2PChttps://queue.acm.org/detail.cfm?id=3025012
J. Kreps, N. Narkhede, J. Rao, Kafka: a Distributed Messaging System for Log Processing (2011)日志式消息系统的设计https://notes.stephenholiday.com/Kafka.pdf
Kafka Documentation: DesignISR、acks、幂等生产者、事务https://kafka.apache.org/documentation/#design
Amazon S3 Consistency ModelS3 的强一致读后写语义https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html#ConsistencyModel

4 工程与事故复盘

材料为什么读链接
D. Kegel, The Tail at Scale (2013)长尾、对冲请求、延迟放大https://research.google/pubs/pub40801/
B. Beyer et al., Site Reliability Engineering (2016)SLO、错误预算、on-callhttps://sre.google/sre-book/table-of-contents/
LinkedIn Engineering, How LinkedIn customizes Apache Kafka for 7 trillion messages per day (2019)分区元数据、rebalance、配额与跨集群复制https://engineering.linkedin.com/blog/2019/apache-kafka-trillion-messages
AWS, Summary of the Amazon S3 Service Disruption in the Northern Virginia Region (2017)重启、缓存重建、重试风暴https://aws.amazon.com/message/41926/
GitHub, October 21 Post-Incident Analysis (2018)网络分区、MySQL 切换、数据一致性https://github.blog/news-insights/company-news/oct21-post-incident-analysis/
AWS, Summary of the AWS Service Event in the US-East-1 Region (2021)控制面故障、重试与恢复https://aws.amazon.com/message/12721/
GitLab, Postmortem of database outage of January 31, 2017备份、恢复、观测与流程https://about.gitlab.com/blog/2017/02/10/postmortem-of-database-outage-of-january-31/
M. Kleppmann, How to do distributed locking (2016)Redlock 与 fencing 的争论https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html
antirez, Is Redlock safe? (2016)对上述批评的回应http://antirez.com/news/101
Stripe, Idempotent requests幂等键的工业实践https://docs.stripe.com/api/idempotent_requests
U.S. SEC, SEC Charges Knight Capital With Violations of Market Access Rule (2013)旧代码路径重复下单、部署不一致https://www.sec.gov/news/press-release/2013-222
Cloudflare, Details of the Cloudflare outage on July 2, 2019边缘配置推送与全局故障https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/

5 规范

规范用途
RFC 9293 (TCP)只在解释连接复用/超时时引用;不重写
RFC 9110 (HTTP Semantics)方法幂等性、状态码、Retry-After
RFC 7231(已被 9110 取代)历史引用,理解 Idempotency-Key 的语境
W3C Trace Contexttraceparent / tracestate 传播格式
OpenTelemetry Specificationtrace/metrics/logs 的 API 与语义约定
引用原则

本书不复制论文原文、不搬运事故复盘的长段文字;只提取可核对的事实(时间、组件、失败链条、官方结论)并给出链接。若你发现链接失效,按标题搜索原始来源,不要依赖二手转述。