一 简介
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
查询时,默认访问最近DataCenter,并在必要时执行负载均衡。
F1 Server
F1 Server无状态(几乎)的数据查询服务,不存放任何数据,而是通过访问Spanner查询数据。

F1是Google的分布式SQL数据库,结合了传统SQL的功能与NoSQL的可伸缩性。它基于Spanner,支持强一致性和水平扩展。F1的关键特性包括分布式查询、事务级索引、schema变更、变更历史记录。为了优化性能,F1使用数据内聚、ORM接口限制RPC访问次数。架构中包含负载均衡器、无状态F1 Server、Slave Pool和F1 Master。数据模型采用表层级结构和protobuf列类型,支持本地和全局索引。在schema变更时,F1采用分批更新模式。事务处理包括快照、悲观和乐观事务,支持自定义列簇锁。客户端提供ORM、SQL和NoSQL接口,查询处理通过分布式查询和MapReduce类似的方法进行。
最低0.47元/天 解锁文章
2348

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



