Google Papers学习笔记 --- GigTable 中 SSTable 与 tablet的理解

来源:互联网 发布:写大纲的软件 编辑:程序博客网 时间:2024/05/16 00:42

Table由按照 rowkey 排序后划分出的子片 tablet 组成,所以 tablet 是逻辑概念,


Bigtable 会将数据持久化成 SSTable 的格式。该格式下的的 key 都是经过排序后不可变的 KV 对。

每个 SSTable 由 block 组成并通过 block index 来定位每个 block。Bigtable 内存中维护着 memtable 用以处理写请求。

客户端对 Bigtable 的写操作首先会被内存中 memtable 处理,当 memtable 的大小超过一定阈值时,Bigtable 将会生成

新的 memtable 并将老的 memtable 以 SSTable 的格式刷入磁盘;

Bigtable 依赖于 Chubby 服务来进行分布式调度和元数据存储。客户端首先要从 Chubby 中获取相应的 Root tablet,再

从 Root tablet 中索引找到其他 tablet。新的 tablet 的增加和删除必须通过 Chubby 服务来操作。Chubby 服务一旦挂

了,Bigtable 也就挂了,因此 Chubby 是一个高可用服务,一般有 5 个节点组成,节点间用 Paxos 协议组织,开源的

类似实现有 Zookeeper 和 etcd;

综上所述,SSTable 可认为是 Bigtable 中单机数据在磁盘的存储格式,而 tablet 则是分布式调度和存储的最小单元。

0 0