幂等性设计:为何一个请求被重复执行会产生数据灾难

2017年2月,一位开发者在Stripe官方博客下留言:他刚刚经历了一次"幽灵扣款"——用户点击支付按钮后页面超时,刷新重试,结果被扣了两次款。这不是技术故障,而是系统设计缺陷。在网络不可靠的世界里,重试是常态;如果没有幂等性设计,每一次重试都可能成为数据灾难的开始。 ...

9 min · 4020 words

Raft协议的"实现陷阱":为什么论文读懂了,代码却写不对

2014年,斯坦福大学的Diego Ongaro和John Ousterhout在USENIX ATC会议上发表了一篇题为《In Search of an Understandable Consensus Algorithm》的论文。这篇论文提出了Raft协议,声称比Paxos"更容易理解"。论文开篇直言:Paxos"非常难以理解",而Raft的设计目标就是提供"更好的可理解性"。 ...

15 min · 7104 words

CAP定理的误导性:为什么"三选二"是分布式系统被误解最深的公理

2000年7月,加州大学伯克利分校的Eric Brewer在ACM Symposium on Principles of Distributed Computing上做了一个主题演讲。他提出了一个看似简单的观点:分布式系统不可能同时提供一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。 ...

10 min · 4812 words

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

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

10 min · 4654 words

写倾斜异常:为什么可重复读隔离级别还是会出现一致性问题

1995年,IBM 的研究人员发表了一篇名为"A Critique of ANSI SQL Isolation Levels"的论文。这篇论文指出了 ANSI SQL 标准对事务隔离级别定义的模糊性,并引入了一个在当时鲜为人知的异常现象:写倾斜(Write Skew)。近三十年后,这个概念仍然是数据库领域最容易被误解的问题之一。 ...

8 min · 3787 words

分布式共识算法:从Paxos到Raft,为什么这个四十年前的问题依然重要

1985年,三位研究者Fischer、Lynch和Paterson发表了一篇论文,证明了一个令人沮丧的结论:在异步分布式系统中,即使只有一个进程可能崩溃,也不存在确定性的共识算法。这个被称为FLP不可能性定理的结果,并没有让分布式系统的发展停滞——相反,它催生了一系列优雅的工程解决方案。 ...

14 min · 6742 words