Skip to content

时钟专栏导览 ​

标签
分布式/时钟
字数
603 字
阅读时间
3 分钟

本专栏解决一个问题:分布式系统里不存在全局时钟,事件的先后顺序该怎么定义。

目录 ​

  • 01 · 全序、偏序 —— 偏序与全序的定义,以及物理时钟 / 逻辑时钟 / 向量时钟三条路线的总览
  • 02 · 从物理时钟到NTP与PTP协议 —— 晶振为什么不准、NTP 与 PTP 的校时机制
  • 03 · 逻辑时钟:Lamport 与向量 —— 标量逻辑时钟的完整推导(Clock Condition、C1/C2、tick line、异常),以及向量时钟补上「C(a) < C(b) 必要不充分」那个缺口,末段落到 Dynamo 版本向量
  • 04 · 全局快照与虚拟时间 —— Mattern 的时钟向量:以格(lattice)保留偏序,由此定义一致割与「可能发生过」的全局状态,并给出不要求 FIFO 的快照算法
  • 05 · Interval Tree Clocks —— 节点数动态时向量时钟撑不住的三个点,以及用 id 区间树替代定长向量
  • 06 · Bloom Clock —— 用位宽换节点数:空间是定长的 m(与节点数无关),代价是比较结果带误报率

阅读顺序 ​

01 → 03。02 走物理时钟路线,03 走逻辑时钟路线,两条线在 01 里对照。

03 是本专栏的主干。 前半讲 Lamport 的标量时钟(能满足什么、不能满足什么),后半讲向量时钟(补上因果判断)。两者收在一篇是因为标量时钟的缺口正好由向量补上,拆开写读者要来回跳。

04 → 06 是三条延伸线,都从 03 分出去。 04 回到数学结构本身(时钟向量上的格、一致割、快照),另外两篇解决向量时钟的两个失效场景:节点数动态(05,走精确、结构变复杂)与节点数极大(06,走概率、放弃精确)。三篇都建立在 03 的向量比较规则之上,读完 03 再挑。

贡献者 ​

文件历史 ​