编辑: AA003 | 2018-09-16 |
2 部分详细描述了数据模型,第3部分大概介绍了用户 API,第4部分简要介绍 了BigTable 所依赖的 Google 底层基础设施,第5部分描述了 BigTable 的实施方法,第6部分描述了我们针对 BigTable 做的性能改进,第7部分提供了 BigTable 的性能衡量方法,第8部分给出了几个实例来介绍 Google 如何使用 BigTable,第9部分介绍了我们在设计和支 持BigTable 过程中得到的经验教训.最后,在第
10 部分介绍相关工作,第11 部分给出结 论.
2 Data model 一个 BigTable 是一个稀疏的、 分布的、 永久的多维排序图. 我们采用行键盘 (row key) 、 列键(column key)和时间戳(timestamp)对图进行索引.图中的每个值都是未经解释的字 节数组. (row:string, column string, time:int64)→string 我们在检查了类似 BigTable 的系统的多种应用以后,才决定采用这种数据模型.这里 给出一个实际的例子来阐释为什么我们采用数据模型设计. 假设我们想要拷贝一个可能被很 多项目都是用的、很大的网页集合以及相关的信息,让我们把这个特定的表称为 Webtable. 在Webtable 当中,我们使用 URL 作为行键,网页的不同方面作为列键,并把网页的内容存 本翻译论文源于厦门大学计算机系数据库实验室林子雨老师的云数据库技术资料专区 http://dblab.xmu.edu.cn/cloud_database_view 第4页/共
23 页 翻译:厦门大学计算机系教师 林子雨 http://www.cs.xmu.edu.cn/linziyu 储在 contents:column 中,如图
1 所示. 图1存储了网页数据的 Webtable 的一个片段.行名称是反转的 URL,contents 列家族包含 了网页内容,anchor 列家族包含了任何引用这个页面的 anchor 文本.CNN 的主页被 Sports Illustrated 和MY-look 主页同时引用,因此,我们的行包含了名称为 anchor:cnnsi.com 和 anchor:my.look.ca 的列.每个 anchor 单元格都只有一个版本,contents 列有三个版本, 分别对应于时间戳 t3,t5 和t6. ROWS 一个表中的行键,是任意的字符串(当前在尺寸上有 64KB,虽然 10-100 字节是用户最 常用的尺寸) .对每个行键下所包含的数据的读或写都是一个原子操作,不管这个行中所包 含的列的数量是多少........