云计算背后的秘密(3)-BigTable
作者 吴朱华 | 2010-12-07 18:36 | 类型 云计算, 弯曲推荐, 行业动感 | 9条用户评论 »
系列目录 云计算的秘密
由于在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所无法支持的特性:
| |
雁过留声
“云计算背后的秘密(3)-BigTable”有9个回复
GFS和bigtable有和本质差异?
在开源界有HTree!!
兄弟能否再说深一点!!!来点干货!!
>GFS和bigtable有和本质差异
GFS 是 FS, bitable 是 storage的组织方式. GFS 构建在bigtable之上.
James说的很对,GFS只是支撑BigTable的存储实现,也就是storage engine,这之间的关系好比innoDB之于MYSQL。
我以为,催生BigTable 的数据关系模型和肇始于60~70年代banking,telecom行业对于强约束条件下的关系数据的模型显而易见地不同。BT所要解决的问题是:公用的海量数据和强可扩展的被公开访问性能;而不是ACID。我们耳熟能详数据一致性,事务要求,和并发控制其实都被弱化了。
热火朝天的的NoSql就是对这一潮流的响应。
呵呵,我同意西贝流士的看法。
这个事情绝对值得击节叫好,而且朱华同学的effort是值得国内计算机专业人士的向右看齐的,不说远的,计算学科领域内的国人的contribution 能让人想到的就是章博士的LVS,从下到上的看,近几年以来让人兴奋的想法和技术实现都没有国人的身影:
kernel级别: 关键的process scheduler 之O(1)调度;基于slab的VM management
;追求高并发环境下的epoll ;更加不用说产品级别的,在F5里面沉淀后的诞生的nginx ,俄罗斯人;还有前几天首席谈到的FOS,感兴趣之下,仔细读完,发现Anant 只是把andrew .tanenbaum 在20年前的阐述的distributed OS思想在tilera上进行了一次实现而已, 当年的那套OS叫做Amoeba。考察其关键,micro kernel, system call by RPC (message); system call as service ……..FOS都与其一脉相承。
同样的论文和敛聚其中的思想国人一样能够被传递,但是却没有合适的学术和产业土壤,惟扼腕叹息尔?!
扯远了,对于朱华兄敬佩不已,有理想的IT人,set target 努力吧
呵呵,谢谢西贝同学的鼓励,事在人为!
朱华,你的YunTable是基于GFS吗?
to arlen:
local 文件系统