赞
踩
Hbase的一个列族本质上是一棵LSM树(Log Structured Merge Tree)。LSM树分为内存和磁盘部分。内存部分是一个维护有序数据集合的数据结构。hbase选择了跳表。磁盘部分是由一个个独立文件组成,每一个文件都是一个数据块。对于数据存储在磁盘上的系统来说,磁盘寻道以及数据读取都是非常耗时的操作。因此,为了避免不必要的IO耗时。因此在次盘中存储一些额外的二进制数据,这些数据用来判断制定的key是否有可能存储在这个数据块中,这个数据结构称为布隆过滤器
跳表插入/删除/查找的时间复杂度是O(logN)
LSM树本质和B+树一样,是一种磁盘数据的索引结构。但是和B+树不同的是,LSM树的索引对写入请求更友好。因为LSM会把写入请求处理为顺序写。而HDFS适合顺序写
LSM 索引一般两部分组成,一部分是内存部分,一部分是磁盘部分。内存部分一般采用跳跃表来维护一个有序的KeyValue集合。磁盘部分一般由多个内部KeyValue有序的文件组成。
一般来说,LSM存储的事多个keyvalue组成的集合,每一个keyvalue一般会用一个字节数组表示。字节数组主要分为以下几个部分:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。