当前位置:   article > 正文

Hbase-LSM树_hbase lsm

hbase lsm

首先Hbase的一个优点写速度快,就是因为用了这个LSM树

 主要就是说 b树这种虽然查的快,但是在存的时候他是随机IO存储,这导致磁盘的磁臂会来回寻道存储,浪费大量时间。而LSM树它采用的是一种先把东西放内存这个是c0树,还有一个c1树用来存储合并结果的,他也放在磁盘里面(但他并不是最终的一个持久化结果),然后我每次c0存个差不多的时候,     我采用了一种追加合并的方式 合并到c1里面,批量存到磁盘里面。等我c1差不多大的时候,我直接持久化到最终磁盘里面形成hfile。

merge操作是为了一口气放更多的东西,其实还是一个批量存储的目的

由于我c0 c1都是有序的结构 最终存进磁盘里面也是有序的,所以我未来hfile合并直接归并查找,我读的时候也能用二分查找的方式,包括最后我读用了最小堆,它只需要查找到rowkey的一个起始行即可,就是因为我在写的时候,大家都是有序的

也就是,我开辟空间暂时存储我的东西,如果我的基础结构是那种有序结构,我还能在写的时候直接排序了。 等到我存了个差不多我就能批量持久化了,这种一堆文件的存肯定是顺序IO

相反的,会导致读的性能慢,因为我内存里面有东西,磁盘里面有东西,我要查看磁盘里面所有文件和内存的文件。   

两边的东西我只是追加的形式插入数据,并不是修改的形式。(这句话就是 删除只是插入一条keytype为delete的row,并不是把数据真正删除)所以我俩边都要考虑,都要混合,不能像b树那种我看到是啥就是啥(b树删除更新就比较麻烦,而我们没有“删除更新” 全是“插入”)。

LSM树_艾斯-李的博客-CSDN博客_lsm树

LSM 算法的原理(通俗,详细)_大叶子不小的博客-CSDN博客_lsm算法

增强读性能的话 比如磁盘的文件会适时的合并 减少数量 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/594113
推荐阅读
相关标签
  

闽ICP备14008679号