facebook hbase版本目前做的一些重要特性,提升性能

(1)每个regionserver多个HLog,提升写。 社区还没有

https://issues.apache.org/jira/browse/HBASE-5699

https://issues.apache.org/jira/browse/HBASE-6981

http://svn.apache.org/viewvc?view=revision&revision=1412373

(2)多线程flush memstore,提升写,社区还没有

https://issues.apache.org/jira/browse/HBASE-6980

https://issues.apache.org/jira/browse/HBASE-6466

(3)HTableMultiplexer,提升写,社区还没有

https://issues.apache.org/jira/browse/HBASE-5776

(4)scan

https://issues.apache.org/jira/browse/HBASE-6922

(5) Distributed log splitting

https://issues.apache.org/jira/browse/HBASE-1364

http://blog.cloudera.com/blog/2012/07/hbase-log-splitting/

(6) HFileV2

https://issues.apache.org/jira/browse/HBASE-3857

(7)并行写,hdfs的写最早是pipeline的方式,那么延时跟pipeline的长度有关。facebook最早就实现了并行写,client同时向3个datanode写,而不是pipelien的方式,这种方式可以降低延时,但是会降低吞吐量

https://issues.apache.org/jira/browse/HDFS-1783

社区版本还没有集成这个patch进去

(8)datablock 后面紧跟 checksum,数据和校验和存在一起,存一个文件,可以减少磁盘iops,但是能够减少多少,提升多大不太知道,因为checksum一般都比较小,绝大时候都cache在os中。
社区hbase已经支持,但是hdfs不支持,facebook的hbase版本已经支持,hdfs也支持。
如果hdfs支持,那么hbase的就没什么用了。
hbase的hfile支持,那么可以关闭底层hdfs的checksum,但是现在hdfs不支持关闭checksum。hfile是支持,但是hbase写的其他文件如hlog和一些.regioninfo文件等还是不能关闭checksum的,这些文件的数据中没有带checksum。

(9)Lazy-seek optimization for StoreFile scanners

facebook使用的hadoop版本是在:

https://github.com/facebook/hadoop-20

很多重要的提升都是facebook的人完成的,facebook维护了一个自己的版本,能够快速的添加新的特性并进行验证,比如(1)(2)很早之前在社区就讨论过,但是一直没有做完,但是这些特性已经在facebook的版本里面有了。

http://svn.apache.org/viewvc/hbase/branches/0.89-fb/

他们的目前的版本跟社区0.94比较接近

http://hadoopstack.com/

猜你喜欢

转载自bupt04406.iteye.com/blog/1733544