F1 是起源于 Google AdWords 的分布式 SQL 查询引擎,跟 Spanner 分布式存储搭配,开启了分布式关系数据库——所谓 NewSQL 的时代。2017 年,Google 发表了一篇题为《Spanner: Becoming a SQL System》的论文。这篇论文描述了查询执行的切分、瞬态故障情况下查询重新执行、驱动查询做路由和索引查找的范围查询,以及改进的基于块的列存等分布式查询优化技术。
这个系统具备了大规模的扩展性,具有如下几个方面的特色:可扩展性、自动分片、容错性、一致性复制、外部一致性,和数据广域分布。这些特色是通过提供了多行事务、外部一致性、跨数据中心的透明故障转移等功能实现的。Spanner 开创了 NoSQL 分布式数据库的新时代,主要解决了如下问题:
-
数据分布
-
多副本高可用:failover
-
分布式事务处理:外部一致
-
计算分布(通过 F1 支持 SQL,松耦合结构)
-
KV 存储模型