介绍
谷歌对数据系统性能有极高的要求,MySQL这样的系统都很难令其满意,所以谷歌设计F1数据库,其目标是让其具备高度的可扩展性和高度稳定性,除了必备的SQL语言支持外,F1还提供ad hoc类型查询。
基本构架
用户通过客户端语料库(client library)和F1交互。用户发出的请求首先送到某个F1服务器,F1服务器负责之后的任务分配和数据处理。
为了减少处理请求造成的延时(latency),F1的客户端和与之直接相连的负载均衡器会首先向最近的F1服务器相连,但是如果附近的F1服务器非常繁忙或者出现故障,那么就会找其他远一点的服务器。
F1服务器通常和spanner服务器放在一个数据中心,因为这样可以提高数据读写的速度,不过F1服务器也可以连接其他数据中心的spanner服务器。spanner从一个叫做CFS(Colossus File System)的文件系统调取数据,相连的spanner和CFS永远是在同一个数据中心的,也就是说,某个数据中心的spanner不会和另一个数据中心的CFS相连。
因为F1服务器没有存储数据,F1服务器可以根据访问流量的大小随意增减。
整个F1系统处理请求可以在单个节点上完成,也可以在多个节点上分布完成,关键看哪个延时更小。如果是用分布式的方式处理请求,F1会指定多个进程(process)来完成,一个从属服务器(slave server)接管一个进程。多个从属服务器由一个主服务器(master server)管理。F1也支持MapReduce。</