计算机时钟为何永远不准——从晶振漂移到分布式时间同步的技术突围

2012年6月30日午夜,全球多家知名网站突然瘫痪。Reddit用户发现网站无法访问,LinkedIn的Java进程陷入死循环,Mozilla的Hadoop集群停止工作,澳洲航空公司的值机系统全面崩溃。罪魁祸首只有一个:一个叫做"闰秒"的额外时间单位。 ...

9 min · 4047 words

分布式ID生成:为什么你的主键选择正在毁掉数据库性能

当一个128位的随机值作为B-tree索引的主键时,每一次插入都像是在图书馆的随机位置放一本书——图书管理员疲于奔命,书架越来越乱。这不是夸张的比喻:PostgreSQL的基准测试显示,使用UUID v4作为主键时,索引体积膨胀22%,插入速度下降34.8%。 ...

10 min · 4682 words

为什么分布式系统没有完美时钟:从Lamport到TrueTime的四十年博弈

1978年,Leslie Lamport在《Time, Clocks, and the Ordering of Events in a Distributed System》论文的开篇写道:“A distributed system can be described as one in which the failure of a computer you didn’t even know existed can render your own computer unusable.” 他当时大概没想到,这篇论文定义的"happened-before"关系,会成为分布式系统此后近五十年的基石。 ...

10 min · 4972 words

没有全局时钟的世界:分布式系统如何定义"先"与"后"

1978年7月,Leslie Lamport在《Communications of the ACM》上发表了一篇论文,标题是《Time, Clocks, and the Ordering of Events in a Distributed System》。论文开篇就抛出了一个反直觉的论断:分布式系统中,事件的"先后顺序"本质上是一个相对概念。 ...

10 min · 4654 words