分布式系统必读:11篇经典论文
Distributed Systems Classics
Nicolae Vartolomei 精选了 11 篇塑造分布式系统领域的经典论文,从 Leslie Lamport 的时钟同步与 Paxos 算法,到 Byzantine Generals Problem 和 Bitcoin 白皮书。这份清单涵盖了从理论基石到现代共识算法的关键文献,包括 Viewstamped Replication、Conflict-free replicated data types 等前沿研究。无论你是刚入门的研究者,还是希望重温基础的系统工程师,这些论文都是理解分布式问题空间的绝佳起点,带你穿越从 1978 年到 2014 年的技术演进历程。
这份精选列表收录了塑造分布式系统研究领域的永恒且极具影响力的论文。
HN 评论区
73- mjb
这份清单肯定不错。这里再补充几篇更深度的文章,供那些想找些不那么主流内容的人参考:
"The Maintenance of Duplicate Databases" https://datatracker.ietf.org/doc/html/rfc677 (据我所知,这是分布式系统中逻辑时钟用法的起源)。
"Chain Replication for Supporting High Throughput and Availability" https://www.usenix.org/legacy/event/osdi04/tech/full_papers/... (链式复制是当今绝大多数云规模数据复制的实现方式)。
"Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services" (CAP 的正式化表述,它以一种非常古怪的方式定义了 Availability,导致随后十年里出现了大量糟糕的权衡思考。尽管如此,它依然是一篇经典之作。)
"Paxos Made Live" https://research.google/pubs/paxos-made-live-an-engineering-... (为这场此前 largely 停留在理论层面的讨论,带来了急需的工程视角。)
"Practical Byzantine fault tolerance" (显著推动了拜占庭容错领域的讨论进展)。
这只是一小部分内容。早在 70 年代和 80 年代的分布式数据库文献中(以及现代系统和数据库文献中),就有大量优秀的资料。
- bigcat12345678
我是 Lamport 的拥趸。
我逐渐意识到,Lamport 之于分布式系统,其地位比 Hinton 之于深度学习更为重要。不过,Lamport 的知名度还是不如 Shannon 之于信息理论。Shannon 是最接近“黄金”级人物称号的,其学科对现代社会具有普适性。
Lamport 特别揭示了计算机系统与物理学之间的哲学联系,即分布式共识与相对论理论的平行关系。对我而言,这种启示在于:分布式系统中事件之间的关系,比它们的绝对顺序更为根本,因此“观察者”扮演着核心角色。我尚未深入分析这一认识是直接源于 Lamport 的论文,还是源于我的一般阅读和思考,但我相当确信,我的广义阅读深受 Lamport 论文的影响,或者至少可以追溯到与 Lamport 思想兼容的层面。我也没有认真深入研究这种联系是否真正成立,这或许只是我另一个纯粹的外行推测。
我认为 Lamport 的一个不足之处在于,他的文章读起来并不轻松易懂。我下意识地觉得,Lamport(以及 Anthropic 的 Dario)可能都有一种隐藏的知识优越感,这种优越感源于他们各自的职业生涯经历。因此,他们的文章(以及 Dario 的“福音”)都共享一种不变的叙事腔调,源于他们自己精致而优雅的思想,却较少考虑如何促进读者的理解 […]
- manesioz
其他一些经典(应用层分布式系统):
- DDB: https://www.allthingsdistributed.com/files/amazon-dynamo-sos...
- MapReduce: https://www.cs.princeton.edu/courses/archive/fall13/cos518/p...
- Spark/RDDs: https://www.usenix.org/system/files/conference/nsdi12/nsdi12...
- BigTable: https://static.googleusercontent.com/media/research.google.c...
- nesarkvechnep
一如既往,这类清单总是漏掉了 Joe Armstrong 的博士论文《Making reliable distributed systems in the presence of software errors》 - http://erlang.org/download/armstrong_thesis_2003.pdf
- mad44
这是我的清单:
https://muratbuffalo.blogspot.com/2021/02/foundational-distr...