Spanner:谷歌的全球分布式数据库
1 引言
Spanner 是谷歌设计、构建和部署的可扩展全球分布式数据库。从最高抽象层面看,它将数据分片到分布在全球数据中心的多组 Paxos 状态机中。借助复制技术实现全球可用性和地理局部性,客户端能在副本间自动故障转移。随着数据量或服务器数量变化,Spanner 会自动对数据进行重新分片,并在机器间(甚至跨数据中心)迁移数据,以平衡负载和应对故障,其设计目标是扩展到数百个数据中心的数百万台机器和数万亿数据库行。
1.1 应用场景
- 高可用性 :应用程序可通过在洲际内甚至跨洲际复制数据,实现高可用性,即便面对大范围自然灾害也能正常运行。谷歌的 F1 广告后端系统是 Spanner 的首个客户,它在美国分布了五个副本。
- 低延迟与容错 :大多数应用可能会在一个地理区域的 3 到 5 个数据中心复制数据,选择较低延迟而非更高可用性,前提是能承受 1 到 2 个数据中心故障。
1.2 特性与优势
Spanner 主要专注于管理跨数据中心的复制数据,同时在分布式系统基础设施上设计和实现了重要的数据库特性,从类似 Bigtable 的版本化键值存储演变为时态多版本数据库。
- 数据存储 :数据存储在具有模式的半关系表中,数据有版本,每个版本自动标注提交时间戳,旧版本数据可根据可配置的垃圾回收策略处理,应用程序可读取旧时间戳的数据。
- 事务支持 :支持通用事务,并提供基于 SQL 的查
超级会员免费看
订阅专栏 解锁全文
2567

被折叠的 条评论
为什么被折叠?



