HBase

hbase 读书笔记——数据结构

2021-07-05  本文已影响0人  ZYvette

跳跃表

跳跃表广泛使用于KV数据库中,诸如Redis、LevelDB、HBase都把跳跃表作为一种维护有序数据集合的基础数据结构。
性质1一个节点落在第k层的概率为pk-1。
性质2一个最底层链表有n个元素的跳跃表,总共元素个数,其中k为跳跃表的高度。
性质3跳跃表的高度为O(logn)。
性质4跳跃表的查询时间复杂度为O(logN)。
性质5跳跃表的插入/删除时间复杂度为O(logN)。

LSM

LSM树本质上和B+树一样,是一种磁盘数据的索引结构。但和B+树不同的是,LSM树的索引对写入请求更友好。
LSM树的索引一般由两部分组成,一部分是内存部分,一部分是磁盘部分。内存部分一般采用跳跃表来维护一个有序的KeyValue集合。磁盘部分一般由多个内部KeyValue有序的文件组成。

LSM中存储的是多个KeyValue组成的集合,每一个KeyValue一般都会用一个字节数组来表示。

2.多路归并


image.png
  1. LSM树的索引结构
    内存部分和磁盘部分
image.png

布隆过滤器

实现一个基于磁盘和内存的哈希索引当然可以解决这个问题。而另一种低成本的方式就是借助布隆过滤器(Bloom Filter)来实现。
HBase的Get操作就是通过运用低成本高效率的布隆过滤器来过滤大量无效数据块的,从而节省大量磁盘IO。

上一篇 下一篇

猜你喜欢

热点阅读