云计算背后的秘密(3)-BigTable

云计算
由于在Google的数据中心存储PB级以上的非关系型数据时候,比如网页和地理数据等,为了更好地存储和利用这些数据,Google开发了一套数据库系统,名为“BigTable”。

由于在Google的数据中心存储PB级以上的非关系型数据时候,比如网页和地理数据等,为了更好地存储和利用这些数据,Google开发了一套数据库系统,名为“BigTable”。

技术概览

从技术来讲,BigTable不是一个传统的关系型的数据库,也不支持类似关联(join)这样高级的SQL操作,取而代之的是多级映射的数据结构,并支持大规模数据处理、高容错性和自我管理等特性,提供PB级的存储能力,使用结构化的文件来存储数据,并整个集群每秒可处理数百万的读写操作。

什么是多级映射的数据结构呢?就是一个稀疏的、多维的和排序的Map,每个Cell(单元格)由行关键字、列关键字和时间戳来进行三维定位.Cell的内容本身就是一个字符串,比如,存储每个网页的内容。在下图中, 反向的URL “com.cnn.www”是这行的关键字,“contents”这列存储了多个版本的网页内容,每个版本都有一个时间戳。BigTable还提供一个用于将多个相似的列整合至一起的Column Family(列组)机制,比如,下面“anchor”这个Column Family就有“anchor: cnnsi.com”和“anchhor:my.look.ca”这个两个列。通过Column Family这个概念,使得表可以轻松地横向扩展。
 

 

▲图1. BigTable数据模型图

在结构上,BigTable基于GFS分布式文件系统和Chubby分布式锁服务。BigTable主要分为两部分:其一是Master节点,用来处理元数据相关的操作并支持负载均衡。其二是Tablet节点,主要用于存储数据库的分片tablet,并提供相应的数据访问,同时tablet是基于名为SSTable的格式,对压缩有很好的支持。下图为其具体的架构图:
 

 

▲图2. BigTable架构图

相关产品

和之前介绍的MapReduce和GFS一样,BigTable在开源界也有很多类似的产品,***的两个莫过于属于Hadoop系列的Hbase和来自于Facebook的Cassandra。Hbase的特色在于其完全继承了BigTable的设计,所以它在MapReduce和海量数据存储这两方面支持地非常好,而Cassandra的则更倾向于成为全功能型数据库。除了这两个产品之外,我个人也设计一款类BigTable的数据库,名为YunTable,意为“云时代的BigTable”,它的目标是做一个BigTable的精简版,并使其更适合云环境,现在已经发布其0.8版,本已基本实现BigTable的基本功能,官方站点是http://code.google.com/p/yuntable/,希望大家能多多关注。

实际用例

BigTable正在为Google六十多种产品和项目提供存储和获取结构化数据的支撑平台,其中包括有Google Print, Orkut,Google Maps,Google Earth和Blogger等,而且在Google内部至少运行着500个BigTable集群。

下一代BigTable

随着Google内部服务对需求的不断提高和技术的不断地发展,导致原先的BigTable已经无法满足用户的需求,而Google也正在开发下一代BigTable,名为“Spanner(扳手)”,它主要有下面这些BigTable所无法支持的特性:

1. 支持多种数据结构,比如table,familie,group和coprocessor等。

2. 基于分层目录和行的细粒度的复制和权限管理。

3. 支持跨数据中心的强一致性和弱一致性控制。

4. 基于Paxos算法的强一致性副本同步,并支持分布式事务。

5. 提供许多自动化操作。

6. 强大的扩展能力,能支持百万台服务器级别的集群。

7. 用户可以自定义诸如延迟和复制次数等重要参数以适应不同的需求。

作者简介

吴朱华,之前在IBM中国研究院参与过多个云计算产品的开发工作,现在专注于YunTable和YunEngine的研发,并即将发表《剖析云计算》一书,敬请期待。
 

【编辑推荐】

  1. 从Qualcomm公司实施云计算说起
  2. 咖啡馆里的云 打印机的新模样
  3. 了解云的多租户是云采用的关键一步
  4. 云计算背后的秘密(1)-MapReduce
  5. 云计算背后的秘密(2)-GFS

 

责任编辑:王勇 来源: it168
相关推荐

2010-11-25 09:54:14

云计算MapReduce

2010-11-25 10:05:51

云计算GFS

2010-12-06 14:28:56

云计算Chubby

2011-02-17 09:45:40

云计算RPC框架

2011-01-04 10:00:41

云计算YunTable

2010-12-23 10:19:14

云计算NoSQL数据库

2011-01-06 16:36:05

云计算Google

2020-04-15 13:55:28

Kubernetes容器

2020-02-17 21:04:47

在线办公教育

2022-12-29 08:00:00

Transforme架构深度学习

2016-06-27 16:29:04

戴尔闪存

2010-10-25 10:13:16

ibmdwWebSphere

2013-03-01 10:45:36

Nike大数据

2012-02-24 09:07:53

云计算成本

2020-06-19 12:06:12

云计算云平台IT

2019-06-05 12:49:07

云办公

2012-12-19 09:36:33

2010-05-24 18:22:56

SNMP协议

2012-05-21 21:53:05

2017-09-18 08:52:34

点赞
收藏

51CTO技术栈公众号