LSM树在HBase中的应用
来源:互联网 发布:怎样做好淘宝店铺 编辑:程序博客网 时间:2024/05/21 09:52
LSM树全称是基于日志结构的合并树(Log-Structured Merge-Tree)。No-SQL数据库一般采用LSM树作为数据结构,HBase也不例外。众所周知,RDBMS一般采用B+树作为索引的数据结构,如图1。RDBMS中的B+树一般是3层n路的平衡树。B+树的节点对应于磁盘数据块。因此对于RDBMS,数据更新操作需要5次磁盘操作(从B+树3次找到记录所在数据块,再加上一次读和一次写)。
在RDBMS中,数据随机无序写在磁盘块中,如果没有B+树,读性能会很低。B+树对于数据读操作能很好地提高性能,但对于数据写,效率不高。对于大型分布式数据系统,B+树还无法与LSM树相抗衡。
图1 B+ 树
LSM树可以看成n层合并树。在HBase中,它把随机写转换成对memstore和hfile的连续写。图2展示了LSM树数据写的过程。
图2 LSM树
数据写(插入,更新):数据首先顺序写如hlog (WAL), 然后写到MemStore, 在MemStore中,数据是一个2层B+树(图2中的C0树)。MemStore满了之后,数据会被刷到storefile (hFile),在storefile中,数据是3层B+树(图2中的C1树),并针对顺序磁盘操作进行优化。
数据读:首先搜索MemStore,如果不在MemStore中,则到storefile中寻找。
数据删除:不会去删除磁盘上的数据,而是为数据添加一个删除标记。在随后的major compaction中,被删除的数据和删除标记才会真的被删除。
LSM数据更新只在内存中操作,没有磁盘访问,因此比B+树要快。对于数据读来说,如果读取的是最近访问过的数据,LSM树能减少磁盘访问,提高性能。
原文:http://www.cyanny.com/2014/03/13/hbase-architecture-analysis-part1-logical-architecture/
0 0
- LSM树在HBase中的应用
- LSM树在HBase中的应用
- LSM树在HBase中的应用
- LSM树及在Hbase中的应用
- HBase的LSM树
- HBase-LSM树理解
- Hbase LSM树
- HBase LSM树
- HBase的LSM树
- B+树 LSM 树 COLA树 原理及在海量存储中的应用
- B+树 LSM 树 COLA树 原理及在海量存储中的应用
- hbase LSM树个人理解
- LSM树由来、设计思想以及应用到HBase的索引
- LSM树由来、设计思想以及应用到HBase的索引
- LSM树由来、设计思想以及应用到HBase的索引
- LSM树由来、设计思想以及应用到HBase的索引
- LSM树由来、设计思想以及应用到HBase的索引
- LSM树由来、设计思想以及应用到HBase的索引
- 初识JVM中堆栈的存储
- Fragment与FragmentActivity的关系
- MongoDB单例及简易集群安装(linux)
- 线性表的实现
- UI第一节:UIView及其子类
- LSM树在HBase中的应用
- CSTRING转char *\\char *转CSTRING 乱码问题
- Xenserver服务器为Master角色,如果此台XenServer无法使用,该怎么办
- 写给自己的序
- Tomcat使用MyEclipse远程调试Java代码配置详解
- Noip
- PAT basic1016-1020(Python版)
- c之深度搜索例题,南阳oj27--水池数目
- Sicily 1009. Mersenne Composite N