跳轉到

2013 Leslie Lamport —— 時間不存在,順序才是真相#

「分佈式系統裡,兩台機器甚至無法就『現在幾點』達成一致。 Lamport 的解法震驚且優雅:那就別用時間,用因果順序。」

案件檔案#

項目 內容
得主 Leslie Lamport (1941–)
得獎理由 分佈式與併發系統的基礎貢獻
關鍵詞 邏輯時鐘、拜占庭將軍、Paxos、LaTeX、TLA+

前因#

1970s,多機器協作的系統(SRI、PARC、Sutherland 的實驗室 網路)出現怪現象:同一事件在 A 機器與 B 機器的日誌裡 先後不同。物理時鐘不可信(漂移、延遲),謎題: 沒有全局時鐘,系統還能講道理嗎?

線索與推理#

線索一:邏輯時鐘(1978《Time, Clocks, and the Ordering of Events》)#

happens-before:a → b 若 (a,b 同機且 a 先) 或 (b 收到 a 的訊息)
Lamport 時鐘:C(a) < C(b) 保證 a → b
  本地:C ← C+1;送訊息帶時間戳;收訊息:C ← max(C, ts)+1

系統的正確性只需因果序,不需牆上時鐘——分佈式 系統理論的第一原理。向量時鐘(1988)隨後補全:反方向 也成立(當且僅當)。

線索二:拜占庭將軍問題(1982,與 Pease、Shostak)#

叛徒將軍會送出矛盾命令。定理:

n 台機器容忍 f 台任意故障(拜占庭),需 n ≥ 3f + 1
(口頭訊息協定需 f+1 輪;簽名訊息可放寬)

航太(飛控電腦)率先採用;三十年後成為區塊鏈 共識的理論原型。Liskov(2008 案)同年做出工程化 複製方案。

線索三:Paxos(1989/1998)#

多數決共識協定。故事化論文(一群希臘議員)最初被編輯 退稿三次、拖了九年才發表。核心:

兩階段:Prepare(n) → Promise(n, 之前見過的最大提案)
        Accept(n, v) → Accepted(n 為最大編號即接受)
安全不變式:被選中的值 = 某個被多數承諾的值
  (編號單調 + 多數派相交 → 不得改寫已決議值)

今日的 ZooKeeper、etcd、Chubby、Spanner——雲端 一致性世界的地基。

線索四:LaTeX(1984)與 TLA+#

  • 因厭倦排版手稿,寫了 LaTeX 巨集包——全球學術界 意外繼承的遺產(Knuth 1974 案 TeX 的最成功介面)。
  • TLA+:把時態邏輯(Pnueli 1996 案)與集合論合體成 規格語言,Amazon、Microsoft 用其找分佈式協定 bug ——「規格先行」的工業化。

理論評析#

Lamport 的方法論:把系統問題化為數學題。

並發正確性 = 線性一致性(linearizability)
  所有操作看似發生在 [invoke, response] 區間的某一瞬間
  且全序一致於實際因果 → 可判定、可測試(Jepsen 譜系)

「時間不存在,因果即序」不是怪話,而是把物理假設 最小化的設計哲學:不依賴的假設,就不會背叛你。

後果#

  • CAP 定理(Brewer 2000)、Raft(2014,Paxos 的 可讀版)、Kafka/ZooKeeper 全部落在此案的延長線上。
  • TLA+ 成為雲端大廠的核心工程實踐之一。

關聯案件#

→ 2008-Barbara-Liskov與資料抽象及替換原則、1998-Jim-Gray與交易處理及資料庫、1996-Amir-Pnueli與時態邏輯