浅谈LSM-tree的理解

浅谈LSM-tree的理解

LSM_tree 全称是Log Structured Merge Trees(日志结构合并树)

被广泛应用于key-value键值对数据库,是一种存储结构/引擎,或者说是一种思想

像HBase就是典型基于LSM树思想设计的

核心思想

lsm_tree是一种分层,有序,面向磁盘的存储结构,核心思想就是充分利用了磁盘的批量顺序写入比随机写入性能高很多,最大的特点就是写入速度快,但相应的牺牲掉了一些读取的速度,我们都知道日志是系统打印出来的,就跟写日记一样,是一页一页往后面追加的,各种数据库的写前日志也是追加的,我们也可以把Log Structured 简单理解为追加,

但注意他还是一个merge tree,也就是说他还有合并的作用

原理及引用

我们知道 LSM_tree广泛应用于key-value键值对数据库,key-value 类型的存储系统最主要的就两个个功能,put(k,v):写入一个(k,v),get(k):给定一个 k 查找 v。

围绕着lsm树的核心思想进行优化,可以让写的性能达到最优,所以像普通的log写入方式全部都是append方式追加,不存在修改和删除,当然这样的弊端就是虽然写的能力大大加强了,但是却牺牲了部分读取的性能为代价,所以这种数据结构适用于多写少读的场景,那么想要支持复杂和高效的读取,就得做进一步的设计,lsm_tree就利用了内存加磁盘多层的合并结构的原因,基于这种结构在加上不同的优化实现,才造就了现在如HBase等的nosql数据库

在lsm_tree里最核心的数据结构就是sstable,全称是sorted string table,是一种拥有持久化,有序且不可变的键值存储结构,他的key和value都是任意的字节数组,并且提供了按照指定key和指定范围的key迭代遍

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值