分布式系统基础
引入
词汇
| English | 释义 | 拼音 |
|---|---|---|
| distributed system | 分布式系统 | fēn bù shì xì tǒng |
| partial failure | 部分故障 | bù fèn gù zhàng |
| idempotence | 幂等 | mì děng |
| Lamport clock | Lamport 时钟 | Lamport shí zhōng |
| happens-before | 先于关系 | xiān yú guān xì |
协作的物理学
- 分布式系统 distributed system 跨机器共享状态,伴随部分故障 partial failure:一台崩不许污染其余。消息乱序且重复;幂等 idempotence 让重复执行安全。
- 超时不等于失败——等于未知:每个协议都必须处理的第三种结局。

{exercise:uni-cs0907-physics}
练习
超时意味着——
难度 1/5 · 今日首次完成可获 100 金币及少量额外奖励
第三种结局:请求可能落地也可能没有——幂等地重试。
时钟排不了序
- 两台机器的时钟偏差无界,时间戳不能安全排跨机事件。Lamport 时钟 Lamport clock 尊重因果:发送附 $C+1$;接收设 $C = \max(C, \text{收到值}) + 1$。
- P0 以 $C = 1$ 发 $m_1$;P1 收到后 $C = 2$;P1 以 $3$ 发 $m_2$;P0 收到后 $4$。若 $a$ 先于 happens-before $b$ 则 $C(a) < C(b)$——只有这一个方向。
{exercise:uni-cs0907-lamport}
练习
P1 以 C = 3 发给 C = 1 的 P0:接收后 P0 变为——
难度 1/5 · 今日首次完成可获 100 金币及少量额外奖励
C = max(1, 3) + 1 = 4。
设计出来的幂等
deduct(user, 25, id=xyz)执行两次只扣一次:按键幂等——账本记下xyz已完成,重试即空操作。- 可重试的系统由幂等操作加去重账本构成,而不是指望网络停止重复。
{exercise:uni-cs0907-idempotent}
练习
deduct(user, 25, id=xyz) 执行两次只扣一次,因为——
难度 1/5 · 今日首次完成可获 100 金币及少量额外奖励
按键幂等:重试撞上去重账本即空操作。