产业气象站|HBase读取数据快还是写数据快?
首先 , 需要明确的是 , HBase写入速度比读取速度要快 , 根本原因LSM存储引擎 。
LSM树全称是基于日志结构的合并树(Log-StructuredMerge-Tree) 。 No-SQL数据库一般采用LSM树作为数据结构 , HBase也不例外 。
文章图片
专栏Hadoopv3.1大数据技术快速入门作者:软件架构19.8币45人已购查看一、RDBMS采用B+树作为索引的数据结构众所周知 , RDBMS一般采用B+树作为索引的数据结构 , 如图所示 。 RDBMS中的B+树一般是3层n路的平衡树 。 B+树的节点对应于磁盘数据块 。 因此对于RDBMS , 数据更新操作需要5次磁盘操作(从B+树3次找到记录所在数据块 , 再加上一次读和一次写) 。
【产业气象站|HBase读取数据快还是写数据快?】在RDBMS中 , 数据随机无序写在磁盘块中 , 如果没有B+树 , 读性能会很低 。 B+树对于数据读操作能很好地提高性能 , 但对于数据写 , 效率不高 。 对于大型分布式数据系统 , B+树还无法与LSM树相抗衡 。
文章图片
文章图片
专栏Kafkav2.3快速入门与实践作者:软件架构29.6币62人已购查看二、HBase中的LSM树LSM树可以看成n层合并树 。 LSM树本质上就是在读写之间取得平衡 , 和B+树相比 , 它牺牲了部分读性能 , 用来大幅提高写性能 。
在HBase中 , 它把随机写转换成对MemStore和HFile的连续写 。 下图展示了LSM树数据写的过程 。
文章图片
数据写(插入 , 更新):数据首先顺序写入HLog(WAL) , 然后写到MemStore 。 在MemStore中 , 数据是一个2层B+树(图中的C0树) 。 MemStore满了之后 , 数据会被刷到StoreFile(HFile) 。 在StoreFile中 , 数据是3层B+树(图中的C1树) , 并针对顺序磁盘操作进行优化 。
数据读:首先搜索MemStore , 如果不在MemStore中 , 则到StoreFile中寻找 。
数据删除:不会去删除磁盘上的数据 , 而是为数据添加一个删除标记 。 在随后的majorcompaction中 , 被删除的数据和删除标记才会真的被删除 。
LSM数据更新只在内存中操作 , 没有磁盘访问 , 因此比B+树要快 。 对于数据读来说 , 如果读取的是最近访问过的数据 , LSM树能减少磁盘访问 , 提高性能 。
【来源:软件架构】
声明:转载此文是出于传递更多信息之目的 。 若有来源标注错误或侵犯了您的合法权益 , 请作者持权属证明与本网联系 , 我们将及时更正、删除 , 谢谢 。 邮箱地址:newmedia@xxcb.cn
- 辉常观察|产业互联网:区块链与数字货币的分水岭,原创
- 精选热点资讯|服务江西产业发展,晏斌:围绕直播大赛
- 爱集微|投向智能制造/人工智能等领域,欣旺达子公司参与设立产业基金
- 产业气象站|华为新款移动路由双网双通在线,告别断网烦恼,手机一碰就能上网
- 中国蓝新闻|“薅羊毛”入刑越城法院一审宣判,坚决斩断灰色产业链
- 上游新闻|智博会上将签约GPP芯片生产项目,关注智博会|30多家电子产业企业构建梁平电子信息产业链
- 北京商报网|2020中国电信5G产业创新联盟北京站启动
- 家族战队|就读懂了湖南互联网产业,读懂了这些话
- 52未来社区|中国全面支持的半导体产业会怎么样?,新导航芯片领先GPS
- c114通信网|深度解读:2020年光电子产业将迎难而上