360HBase二级索引方案学习总结

在今年的北京QCon大会上,360公司的系统部技术经理赵健博在演讲中公布了360公司的HBase二级索引方案,这一方案的提出将比华为HBase二级索引更好的解决了Hbase的多维实时查询问题。它的核心思想是保证了索引和数据在同一region上,减少了IO通信,提升了HBase的读性能,并且无非修改HBase源码,实现更加简单。

360HBase二级索引公布的演讲视频:http://www.infoq.com/cn/presentations/qihoo360-hbase-two-stage-index-design-and-practice

经过自己对其一段时间的学习和研究,列出一些总结如下:

        1、设计思想

索引的思想依然是倒排索引的思想,即将需要查询的列作为索引数据的Rokwey,查询列所在记录的Rowkey作为索引数据的value。

2、索引设计

该方案是将索引与数据放在了同一个Region的不同family里。索引的Rowkey首字段是Region的startKey,它保证了索引和数据在同一个Region里,接下来是索引的类型INDEX,然后是建索引的列,最后是该列所在的记录的RowKey,索引的value是用来解析索引RowKey的反序列化信息。

3、写路径

几乎没变化。写数据时,先看索引说明里,看哪些列需要建索引,然后给这些列建立索引,将索引和数据都放在同一个put对象中。

4、读路径

先需要创建一个scanner,这里扩展了scanner对象,下面的一个框图代表一个Region。查询时先通过查询条件建立一棵检索树,然后通过检索树去找RowKey,最后通过RowKey去原表seek数据。


5、分裂

针对索引,产生一次分裂后,第一个daughter没有任何变化信息,第二个daughter的索引rowkey需要变更一下。


6、与华为Hbase二级索引方案的比较

7、性能

7.1  单并发写入性能

写代价的损失很小。

  7.2  检索性能数据


  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值