现在的位置: 首页 > 综合 > 正文

读bigtablel论文笔记——结构部分

2014年05月19日 ⁄ 综合 ⁄ 共 941字 ⁄ 字号 评论关闭

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

1. 数据结构:

1.1 行

通过字典书序排序。用户可以根据需要选择合适的行命名,尽量使相关行挨着牌,就可以在查询类似数据时进行快速查询。比如论文中给的maps.google.com,就可以把跟maps.google相关的数据挨着最近,其次是maps。所以这里的行命名比较重要。

1.2 列族

列族的元素应该是同一类型,后面在数据传输过程中可以进行压缩。命名方式:列族名:列名(family:qualier)。这种方式同样是为了更好的排序,快速查询。

访问控制、磁盘和内存的使用统计都是在列族层面进行的。在我们的Webtable的例子中,上述的控制权限能帮助我们管理不同类型的应用:我们允许一些应用可以添加新的基本数据、一些应用可以读取基本数据并创建继承的列族、一些应用则只允许浏览数据(甚至可能因为隐私的原因不能浏览所有数据)

由此看来,貌似也是可以对数据进行任意更改的。。。。后面可能会说到吧。

1.3 时间戳

bigtable的每个单元,也就是列都包含多个版本的数据,可以通过版本号来检索到这些数据。默认按照时间戳倒叙排列,以便于查询最新的数据。当然不是所有版本的数据都保存着,bigtable提供了两个控制参数,决定控制保存多新的数据,比如三周。

2. API

bigtable目前只支持单行的事务处理,不能跨行。

其次,Bigtable允许把数据项用做整数计数器???不理解。。

Bigtable允许用户在服务器的地址空间内执行脚本程序。脚本程序使用Google开发的Sawzall【28】数据处理语言。

Bigtable目前已经有了很多与mapreduce对接的类,能够作为mapreduce的输入输出。

3. bigtable的组成

依赖于GFS分布式集群,存储格式是google SSTable格式,Map结构。打开时索引被加载到内存,使用二分法查找。

依赖于chubby,一个序列化的分布式锁服务组件:

确保只有一个活动的master;

存储bigtable数据的启动位置(the bootstrap location);

查找Tablet服务器,以及在Tablet服务器失效时进行善后

存储BigTable的结构信息(每张表的列族信息)

存储访问控制列表(ACL);

抱歉!评论已关闭.