讲一个

Story Me

用故事讲清楚一个概念。
首期 20 篇讲分布式系统的核心概念——每篇先讲一个故事,再解析它背后的技术。未来会延伸到其他领域。

第一辑

Book I

共识、一致性、状态:系统由此构成。

  1. 流银之国

    分布式快照算法Chandy–Lamport Distributed Snapshot

    从前,在河谷之间有一个王国,名叫流银。这里商贾云集,城邑之间日夜奔驰着无数快马信使,驮着沉甸甸的银袋往来交易。银子从一城流向另一城,…

    约 5 分钟
  2. 万香谱

    CRDT 与强最终一致性Conflict-Free Replicated Data Types

    在南洋诸岛之间,有七座小岛,岛上各有一座"香肆"——调香师世代居于此。每当有商船带来一种新的花瓣、木屑、果皮,香肆中的老师傅便会亲手蒸馏,…

    约 5 分钟
  3. 守夜人誓约

    拜占庭容错Byzantine Fault Tolerance

    北境雪原之上有一座古老的城堡,名曰寒垣。城堡外是无垠的荒野,荒野之中时有异兽出没。城中住着一百零一位守夜人,彼此以誓约为纽带,世代戍守。

    约 5 分钟
  4. 两座钟楼

    CAP 定理The CAP Theorem

    在阿尔卑斯山深处的一条峡谷里,住着两座相邻的小镇:东镇与西镇。两镇之间隔着一道幽深的峡谷,谷上横着一座独木吊桥,吊桥年久失修,…

    约 5 分钟
  5. 两个抄经人

    原子性与隔离性Atomicity & Isolation in ACID

    在敦煌莫高窟的深处,有一间幽暗的经堂。堂中终年燃着两盏油灯,灯下坐着两位老抄经人——东龛的慧明与西龛的慧远。…

    约 6 分钟
  6. 传灯人

    Paxos 与 Raft 共识Paxos & Raft Consensus

    在江南水乡,有一种古老的行当,称作传灯人。每逢除夕之夜,万家灯火将次第燃起,而最早的那一盏"母灯",必须由宗祠的长者亲手点燃,…

    约 8 分钟
  7. 九叠屏

    分层索引与分布式哈希表Hierarchical Indexing & DHT

    在宋朝,汴梁有一位深居简出的画匠,名叫周子安。周子安以画山水著称,但他的名作从不示人,只绘于九叠屏风之上,藏于自家书斋深处。

    约 8 分钟
  8. 河伯调水

    可观测性与自适应调节Observability & Adaptive Load Shedding

    古时黄河岸边有一座河神庙,庙中供奉的是一位年轻的河伯。这位河伯并非传说中那威严的老者,而是个相貌清秀的少年神祇,日日坐在庙中,…

    约 9 分钟
  9. 两位信使

    消息传递语义Message Delivery Semantics

    在古代波斯,有一座横跨丝绸之路的驿城,名曰帕萨尔加德。驿城之中设有一座信使总部,专司将大汗的诏令送往帝国各地——从西陲的拜占庭边境,…

    约 9 分钟
  10. 玉匣

    不可篡改的分布式账本Immutable Distributed Ledgers

    在大唐开元年间,长安城中有一位名扬天下的玉匠,姓苏,人称苏老玉匠。苏老玉匠一生所做之物,只有一样——玉匣。

    约 12 分钟

第二辑

Book II

时间、信息流动、协调的边界:系统由此立足。

  1. 十一

    时辰簿

    逻辑时钟与因果序Logical Clocks & Causal Order

    唐贞观年间,朝廷设有太史局,下辖七处史馆,分置于长安、洛阳、成都、广陵、幽州、凉州、交州。每馆各有一位史官,日日执笔,…

    约 11 分钟
  2. 十二

    传谣记

    流言协议与反熵Gossip Protocols & Anti-Entropy

    宋徽宗时,汴京城中有一茶肆,名"清风茗"。清风茗之主人乃一老者,姓沈。沈老汉年过七旬,鬓发皆白,终日坐在茶肆门前一张旧藤椅上,…

    约 10 分钟
  3. 十三

    两位将军

    协调的不可能性The Two Generals Problem

    战国末年,秦将王翦率大军攻楚。楚地广袤,楚将项燕以主力驻郢城南面的云梦泽中,凭借湖沼之险据守。

    约 10 分钟
  4. 十四

    旧符新令

    栅栏令牌与脑裂防御Fencing Tokens & Split-Brain

    汉元狩年间,边郡朔方设一军镇,常年驻军万人,抵御匈奴。军镇之主为镇守使,由朝廷委派。镇守使持一方**铜印虎符**,…

    约 12 分钟
  5. 十五

    雾中无回音

    FLP 不可能性Fischer–Lynch–Paterson Impossibility

    一九四二年十一月,大西洋。

    约 14 分钟
  6. 十六

    转山

    一致性哈希Consistent Hashing

    五月初,塔钦的雪还没全化。

    约 14 分钟
  7. 十七

    双厨

    尾部延迟与对冲请求Tail Latency and Hedged Requests

    唐开元二十三年,腊月二十九,长安大明宫。

    约 13 分钟
  8. 十八

    土匪走了怎么算账

    预写日志Write-Ahead Log

    民国八年,秋。浦市。

    约 18 分钟
  9. 十九

    时间缝隙里的贼

    线性一致性Linearizability

    一九六七年四月的纽约下着冷雨。

    约 21 分钟
  10. 二十

    悬心

    两阶段提交Two-Phase Commit

    一九九八年深秋,上海。心脏专科医院的协调办公室在六楼,窗对着一条空旷的街。午夜将近。老周坐在一张漆色斑驳的木桌前,…

    约 12 分钟

第三辑

Book III

边界之后的工程选择:时钟、原则与妥协继续展开。

  1. 二十一

    漏刻司

    物理时钟的失败模式 —— 为何我们不能相信墙上的钟

    崇祯十七年,漏刻司的两座钟,一座看星象,一座看水滴,各自走得稳当,却在一夜之间差出了一个时辰。

    约 5 分钟
  2. 二十二

    驿路三千里

    端到端原则可靠性该放在哪一层

    开元年间,长安到安西的驿道全长七千二百里,共设一百六十三座驿站。每隔三十里一驿,驿卒换马不换人,日行五百里,…

    约 6 分钟
  3. 二十三

    守陵人

    活性 vs 安全性坏事永不发生 vs 好事终将发生

    乾陵的守陵人分两种:不动的石头在神道两侧站了千年,动的活人在地宫里一代一代死绝。

    约 8 分钟