Google 的全球分布式数据库 Spanner,最大的特点就是强一致性和高可用能兼顾,听起来像是违反了 CAP 定理对吧?但人家用了一个聪明的机制——TrueTime。这个玩意本质上是一个同步了原子钟和 GPS 时间的时间 API,用来给每次写入打上全局一致的时间戳,厉害吧。
Spanner 最厉害的地方在于,支持全球范围的事务还能保持高吞吐,而且读的时候不需要加锁,响应也挺快的。你写个金融系统、全球库存系统之类的,都合适。不用怕延迟太高、数据不一致那些老问题。
再聊下 CAP 定理,嗯,简单说就是一致性、可用性、分区容错三选二。网络一旦出问题(分区),你要么丢可用性,要么丢一致性。但 Spanner 聪明在哪?它把场景拆开了:平常不分区,都能要;真遇上问题,它也能平稳降级,体验上你几乎察觉不到。
而且文末还提到了不少相关资料,像CorfuDB、Yac 算法、还有 Redis 的键值一致性校验工具,都挺有意思。如果你对分布式一致性这块感兴趣,建议都点进去看看,算是系统学习的一部分。
如果你正在做多节点数据库系统、微服务架构,或者有全局强一致性需求,Spanner 的设计思想绝对值得一看,嗯,可以当作一个参考范本来学。