本篇总结学习了1978年Leslie Lamport发表在 Communications of the ACM 上的论文 Time, Clocks, and the Ordering of Events in a Distributed System。论文对分布式系统中的时间,时钟等概念做了深入的讨论,提出了“Happened Before”,“逻辑时钟”,“物理时钟”,“State Machine”等重要概念与算法,是分布式领域不能不读的经典论文。
在之前的文章中提到过Dijkstra于1965年提出的基于共享存储的临界区互斥访问问题。Dijkstra提出了基于对内存单元的原子性读写实现的方案。 然而,Lamport指出Dijkstra的方案会因为节点在临界区内失效而导致系统死锁。在其于1974年发表的文章A New Solution of Dijkstra’s Concurrent Programming Problem中,Lamport提出了完全基于软件实现的解决方案,被称为“面包店算法”。
Edsger W. Dijkstra于1965年发表文章Solution of a Problem in Concurrent Programming Control,引出并发系统下的互斥(mutual exclusion)问题,自此开辟了分布式计算领域。Dijkstra在文中给出了基于共享存储原子性访问的解决方案只有十多行代码,但阅读起来较难以理解。在查阅若干资料后,总结了一种较为直观的解释方法,记录于此。