YunTable开发日记(7)- BigTable的功能集

 
本文是HBase的欧洲传道者LARS GEORAGE的 HBase vs. BigTable Comparison(需要翻墙)一文的节选翻译版。
 

论文中提到的特性

首先,向大家介绍在2006年OSDI大会上发表BigTable论文,也就是《Bigtable: A Distributed Storage System for Structured Data》里面所提到的一些特性:

特性

BigTable

HBase

注释

原子的读写和修改支持,基于Row的支持,基于Row的由于BigTable本身不是关系型数据库,所以它没有事务功能,但是有一个非常相近的机制,就是对一个Row的原子操作。
按照字典顺序对Row排序支持支持

和传统的关系型数据库的不同的是,其只支持按照字典顺序(lexicographic order)对Row排序。

支持Block格式存储支持支持每个存储文件,都由一些小的block组成,这样能快速从大的存储文件中读取数据,默认Block的大小为64K。
Block压缩支持, 基于 column family支持, 基于 column familyBigTable使用BMDiff和Zippy这两种压缩算法。
数据库schema和值的格式任意任意可以是任意字节数组。
访问控制支持不支持BigTable在column family这个层次实现了访问控制。
Cell版本支持支持主要通过Timestamp的形式来实现对Cell版本的控制
批处理写支持支持两个系统都支持批处理写。
脚本工具支持不支持BigTable有Sawzall这个工具来帮助用户快速处理BigTable中的数据。
MapReduce支持支持BigTable和HBase都提供完善的类库和工具来支持MapReduce。
存储系统GFSHDFS, S3, S3N, EBSBigTable主要运行于Google的GFS上, 而且HBase能支持多种存储系统,只要有相关的驱动或者代理。
文件格式SSTableHFile都是Immutable的,也就是写好之后,很少更改的。
内存映射YesNoBigTable能将存储文件直接映射到内存中。
锁服务ChubbyZooKeeper虽然两者功能类似,但在实现机制上稍有不同,原因是ZooKeeper主要通过协调任务来实现锁服务的。
单一Master不是HBase最近添加了对多Master的支持,而且通过ZooKeeper来对那个”standby”的节点进行监控和管理。
Tablet的个数10-100010-1000无论是BigTable,还是HBase,其每个Tablet节点都支持1000个左右的Tablet。
Bloom Filter支持支持用于让系统快速确定这个Region是否存有所需的值。
Write Ahead Log 支持支持每个Tablet节点会其所承载的所有的Tablet准备一个Write Ahead Log来转载修改信息。
表1. 论文中提到的特性

 

新特性

在2009的LADIS大会上,Google院士jeff dean有一个非常精彩的Talk,称为“Design Lessons and Advice from Building Large Scale Distributed Systems”,在这次Talk中他提到了很多BigTable的新特性:

特性

BigTable

HBase

注释

Client隔离支持不支持BigTable内部能服务多个不同的客户,而且能在它们之间保持数据隔离。
Coprocessors支持不支持BigTable能够在Tablet节点上加载代码,这样假设代码依赖的Tablet移动或者被切割,那么代码也会随着那个Tablet而移动。
崩溃(Corruption)的安全性支持不支持BigTable使用CRC校验码来确认数据是不是已经被安全写入。
复制支持不支持HBase现在也在实现这个特性。

表2. 在LADIS 2009大会上的Talk中提到的特性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值