知识卡片

Google Spanner/F1对分布式事务问题的历史性突破

普通读书笔记卡

内容

在[[KV天生对分布式友好、事务是分布式数据库最难的部分]]描述的”分布式化必然牺牲事务能力”的长期困境下,Google的Spanner和构建在其上的F1被认为是第一个公开发表、真正在生产环境验证过的、同时具备水平扩展能力和跨节点强一致事务能力的数据库系统——它之所以有历史性的意义,不是因为它第一个”想到”要做分布式事务(这个目标学术界讨论已久),而是因为它第一个把这个目标真正做到了工程可用、并且敢于公开细节接受同行检验,标志着NewSQL这个品类从理论设想走向了现实可落地的方案。它的关键突破之一是TrueTime——通过在数据中心部署GPS和原子钟,把网络延迟带来的时钟不确定性主动限定在一个已知的、很小的误差区间内,再利用这个有界误差反过来设计出可证明正确的分布式事务提交协议,本质上是用硬件手段去缩小分布式系统里最难对付的”时间不确定性”问题,而不是纯粹依赖软件层面的复杂协调逻辑绕开它。这个案例提示了一个更普遍的方法论:当一个问题在纯软件层面长期无法突破时,重新审视”能不能引入一点点专用硬件能力去改变问题的约束条件本身”,有时比在原有约束下继续优化算法更有效。

参考来源

- 位置:《高可用架构(第1卷)》第2章《高可用架构原理与分布式实践》"2.1 Codis作者细说分布式Redis架构设计"节,"2.1.4 分布式数据库的现状和未来"(源文件:_epub-src/OEBPS/Text/Chapter2_1_5.xhtml) - 结论依据:原文称Spanner/F1是"第一个公开的、真正做到了分布式事务的NewSQL系统",并提到其TrueTime机制利用GPS和原子钟将时钟误差限定在有界范围内以支撑分布式事务,共同支撑本卡片结论。 - 原始内容:Google的Spanner和F1,可以说是第一个公开发表的、真正解决了分布式事务问题的系统……它用了TrueTime这样的机制,通过GPS和原子钟把时钟的误差限定在一个很小的范围内,从而支撑起分布式事务。