一 简介
F1是Google提出的分布式关系型数据库,支持便捷的水平伸缩。这篇论文是NewSQL分布式数据库架构的基石。论文首先定义了F1分布式数据库设计的关键方向:
- 可伸缩性:数据库要提供对业务透明的水平扩展能力,并支持数据迁移、数据rebalance
- 可用性:提供高可用的数据服务
- 一致性:这里特指强一致性
- 易用性:需要支持索引、ad-hoc类查询接口
F1的设计理念是兼顾传统SQL数据库的功能完备于NoSQL数据库的灵活伸缩能力。
F1采用Spanner作为基础数据库(Google提出的分布式NoSQL数据库,后文介绍),并继承了Spanner数据库的特性。在此基础上,F1扩展出了分布式关系型数据库关键能力:
- 分布式查询
- 事务级索引
- schema变更
- 变更历史记录
为了缓解分布式数据库引入到高时延,F1做了一些性能优化的工作,使得F1能在性能上和传统数据库持平。
- 通过数据schema定义让数据内聚,内举的数据相邻存放,提高了访存局部性,减少了RPC访问次数
- 由于F1的使用者大量使用批处理、并行处理、异步读取等操作,F1设计了新的ORM接口,可以限定一次查询内部RPC访问次数的上界
二 整体架构
Load Balancer
查询时