LSM-Tree

LSM-Tree(Log-Structured Merge-Tree)是一种用于key-value存储系统的数据结构,它将操作先保存在内存,达到一定量后批量写入磁盘,利用磁盘的顺序写优势提高写入速度。LSM树包括memtable、immutable memtable、SSTable等组件,其中SSTable是磁盘上的有序键值对集合。查询操作相对较慢,但可通过索引和布隆过滤器加速。合并操作(Compact)是关键,包括size-tiered和leveled两种策略,分别权衡读放大、写放大和空间放大。LSM树适用于写多读少的场景。
摘要由CSDN通过智能技术生成


https://segmentfault.com/a/1190000039269078
https://zhuanlan.zhihu.com/p/181498475
day3

1.LSM-Tree 基本原理

全称:The Log-Structured Merge-Tree
LSM树会将所有的数据插入、修改、删除等操作保存在内存之中,当此类操作达到一定的数据量后,再批量地写入到磁盘当中。而在写入磁盘时,会和以前的数据做合并。在合并过程中,并不会像B+树一样,在原数据的位置上修改,而是直接插入新的数据,从而避免了随机写。

写入速度快,主要利用了磁盘的顺序写,pk掉了需要随机写入的 B-tree,适用于key-value存储系统。

2.LSM树的结构

LSM树的结构是横跨内存和磁盘的,包含memtable、immutable memtable、SSTable等多个部分。
在这里插入图片描述memtable
在内存中的数据结构,用以保存最近的一些更新操作,当写数据到memtable中时,会先通过WAL的方式备份到磁盘中,以防数据因为内存掉电而丢失。
memtable可以使用跳跃表或者搜索树等数据结构来组织数据以保持数据的有序性。当memtable达到一定的数据量后,memtable会转化成为immutable memtable,同时会创建一个新的memtable来处理新的数据。
预写式日志(Write-ahead logging,WAL)是关系数据库系统中用于提供原子性和持久性(ACID属性中的两个)的一系列技术。在使用WAL的系统中,所有的修改在提交之前都要先写入log文件中。

immutable memtable
内存中是不可修改的数据结构,它是将memtable转变为SSTable的一种中间状态。目的是为了在转存过程中不阻塞写操作。写操作可以由新的memtable处理,而不用因为锁住memtable而等待。

SSTable (Sorted String Table)
为有序键值对集合,是LSM树组在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值