到2004年,Google的每个产品都面临同样的问题:存储大量结构化数据,从网页抓取到卫星图像再到金融数据。为每个产品构建定制存储系统代价高昂,而现成的数据库无法达到所需的规模,因此公司设计了一个共享系统。

Bigtable提供了一个简单的模型:一个按行、列和时间戳排序的稀疏映射,值以未解释的字节存储。应用程序决定自己的布局,控制数据本地性,甚至选择数据是从内存还是磁盘服务,而平台在数千台商用服务器上处理分区、复制和故障转移。

到2006年论文发表时,超过60个Google产品(包括Google Analytics、Google Finance、个性化搜索和Google Earth)使用了Bigtable。集群规模从几十台到数千台服务器,存储容量每个最高可达几百TB。

一个共享存储,每个产品调整自己的模式

一个平台分摊了工程和运维成本到多个产品上

应用程序控制布局,因此模型保持简单但用途各异

商用服务器加上自动分区可以扩展到PB级

共享系统意味着一个团队可以为大家加固它

在扩展产品之前,先构建共享的基础设施一次:一个许多团队调优的系统胜过许多无法共同改进的定制系统。

Bigtable仍然是Google自身服务的骨干,后来成为Google Cloud的一项服务,是'NoSQL先驱':一种托管键值和大列存储,用于延迟敏感的个性化、点击流和物联网工作负载,提供HBase和Cassandra兼容的API。它的思想也塑造了开源克隆如HBase。

从这里,追溯依据

参考来源

  1. Bigtable: A Distributed Storage System for Structured Data USENIX (OSDI '06) · usenix.org
  2. Bigtable: fast, flexible NoSQL Google Cloud · cloud.google.com