终于到了 Spanner 了,这篇文章我打算和 GFS 还有 raft 论文一样,读得精细一些,而且 TIDB 就是基于这篇论文的实现。
# 摘要
Spanner is Google’s scalable, multi-version, globally distributed, and synchronously-replicated database.
啧啧啧,开篇第一句就这么牛逼 ?是一个可扩展、全球化分布式、和同步复制的数据库。
时钟 API 是实现 Spanner 的关键所在。
# Paxos
# paxos 要求
# safety:
- 只有一个 value 可以被 chosen
- 只有 value 被 chosen 之后才能被 learn。
# Liveness:
- 一些 proposed value 迟早能被 chosen。
- 如果一个 value 被 chosen,那么 server 最终都会学到。