Google Spanner and F1
Abstract
Spanner是可扩展的、多版本、全球分布式、同步复制数据库。是数据分布在全球范围内的系统,支持外部一致性的分布式事务。
1 Introduction
2 Implementation
- Universe。一个Spanner部署实例称之为一个Universe。目前全世界有3个。一个开发,一个测试,一个线上。因为一个Universe就能覆盖全球,不需要多个。
- Zones. 每个Zone相当于一个数据中心,一个Zone内部物理上必须在一起。而一个数据中心可能有多个Zone。可以在运行时添加移除Zone。一个Zone可以理解为一个BigTable部署实例。
- Universemaster: 监控这个universe里zone级别的状态信息
- Placement driver:提供跨区数据迁移时管理功能
- Zonemaster:相当于BigTable的Master。管理Spanserver上的数据。
- Location proxy:存储数据的Location信息。客户端要先访问他才知道数据在那个Spanserver上。
- Spanserver:相当于BigTable的ThunkServer。用于存储数据。
2.1 SpannerServer 软件栈
2.2 Directories and Placement
2.3 Data Model
3 TrueTime
4 ConCurrency Control
4.1 TimeStamp Managerment
4.2 Details
Spanner使用TrueTime来控制并发,实现外部一致性。支持以下几种事务。
5.1 MicroBenchmarks (微基准测试)
5.2 Availability(可用性)
5.3 TrueTime
5.4 F1
6 Related Work
7 Future Work
论文(EN)地址:
中文翻译