bigtable结构化数据的分布式存储系统

bigtable结构化数据的分布式存储系统

ID:6051234

大小:466.14 KB

页数:20页

时间:2018-01-01

bigtable结构化数据的分布式存储系统_第1页
bigtable结构化数据的分布式存储系统_第2页
bigtable结构化数据的分布式存储系统_第3页
bigtable结构化数据的分布式存储系统_第4页
bigtable结构化数据的分布式存储系统_第5页
资源描述:

《bigtable结构化数据的分布式存储系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、008Bigtable结构化数据的分布式存储系统Bigtable结构化数据的分布式存储系统摘要Bigtable是设计用来管理那些可能达到很大大小(比如可能是存储在数千台服务器上的数PB的数据)的结构化数据的分布式存储系统。Google的很多项目都将数据存储在Bigtable中,比如网页索引,google地球,google金融。这些应用对Bigtable提出了很多不同的要求,无论是数据大小(从单纯的URL到包含图片附件的网页)还是延时需求。尽管存在这些各种不同的需求,Bigtable成功地为google的所有这些产品提供了一个灵活的,高性能的解决方案。在这篇论文中,我们将描述Bigtab

2、le所提供的允许客户端动态控制数据分布和格式的简单数据模型,此外还会描述Bigtable的设计和实现。 1.导引在过去的2年半时间里,我们设计,实现,部署了一个称为Bigtable的用来管理google的数据的分布式存储系统。Bigtable的设计使它可以可靠地扩展到成PB的数据以及数千台机器上。Bigtable成功的实现了这几个目标:广泛的适用性,可扩展性,高性能以及高可用性。目前,Bigtable已经被包括Google分析,google金融,Orkut,个性化搜索,Writely和google地球在内的60多个google产品和项目所使用。这些产品使用Bigtable用于处理各种不

3、同的工作负载类型,从面向吞吐率的批处理任务到时延敏感的面向终端用户的数据服务。这些产品所使用的Bigtable集群也跨越了广泛的配置规模,从几台机器到存储了几百TB数据的上千台服务器。 在很多方面,Bigtable都类似于数据库:它与数据库采用了很多相同的实现策略。目前的并行数据库和主存数据库已经成功实现了可扩展性和高性能,但是Bigtable提供了与这些系统不同的接口。Bigtable并不支持一个完整的关系数据模型,而是给用户提供了一个可以动态控制数据分布和格式的简单数据模型,允许用户将数据的局部性属性体现在底层的数据存储上。数据使用可以是任意字符串的行列名称进行索引。Bigtabl

4、e将数据看做是未经解释的字符串,尽管用户经常将各种形式的结构化或半结构化的数据存储到这些字符串里。用户可以通过在schema中的细心选择来控制数据的locality。最后,Bigtable的schema参数还允许用户选择从磁盘还是内存获取数据。 第2节更加详细的描述了该数据模型。第3节提供了关于用户API的概览。第4节简要描述了Bigtable所依赖的底层软件。第5节描述了Bigtable的基本实现。第6节描述了我们为提高Bigtable的性能使用的一些技巧。第7节提供了一些对于Bigtable的性能测量数据。第8节展示了几个Google内部的Bigtable的使用实例。第9节讨论了我

5、们在设计支持Bigtable所学到的一些经验教训。最后第10节描述了相关工作,第11节进行了总结。 2.数据模型20/20008Bigtable结构化数据的分布式存储系统Bigtable是一个稀疏的,分布式的一致性多维有序map。这个map是通过行关键字,列关键字以及时间戳进行索引的;map中的每个值都是一个未经解释的字节数组。(row:string,column:string,time:int64) ->string我们在对于这种类Bigtable系统的潜在使用场景进行了大量考察后,最终确定了这个数据模型。举一个影响到我们的某些设计决策的具体例子,比如我们想保存一份可以被很多工程使用

6、的一大集网页及其相关信息的拷贝。我们把这个表称为webtable,在这个表中,我们可以使用URL作为行关键字,网页的各种信息作为列名称,将网页的内容作为表的内容存储:获取的时候还需要在列上加上时间戳,如图1所示。 表中的行关键字是大字符串(目前最大可以到64KB,尽管对于大多数用户来说最常用的是10-100字节)。在一个行关键字下的数据读写是原子性的(无论这一行有多少个不同的列被读写),这个设计使得用户在对相同行的并发更新出现时,更容易理解系统的行为。 Bigtable按照行关键字的字典序来维护数据。行组{rowrange,将它翻译为行组,一个rowrange可能由多个行组成}是可以动

7、态划分的。每个行组叫做一个tablet,是数据存放以及负载平衡的单位。这样,对于一个短的行组的读就会很有效,而且只需要与少数的机器进行通信。客户端可以通过选择行关键字来利用这个属性,这样它们可以为数据访问得到好的局部性。比如,在webtable里,相同域名的网页可以通过将URL中的域名反转而使他们放在连续的行里来组织到一块。比如我们将网页maps.google.com/index.html的数据存放在关键字com.google.maps/ind

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。