标签:db

0

245

存储架构|聊聊 LSM Tree 强悍的设计

什么是 LSM Tree ?

LSM Tree 全名:Log Structured Merge Tree ,是一种在机械盘时代大放异彩的存储架构设计。LSM Tree 是一个把顺序写发挥到极致的设计架构。它的核心之一就是 log 文件。

笔者以几个问答来看下它的设计思想:

问题一:LSM Tree 存储引擎到底是什么?

不就是一个 key/value 存储引擎嘛。

问题二:用户写是怎么一个流程?

用户递交数据流程分为两步:写 log 文件,修改内存。所以会看到, 写的流程是非常简单的,用户的时延正常情况下就只包含这两步。

问题三:用户的删是怎么一个流程?

LSM Tree 为了极致的写性能把所有的更新操作都化作顺序写。也就是说, 删除也是写入。往存储里面写一条带删除标记的记录,而不是直接更新原来的数据。

问题四:这是一个持久化的存储吗?能保证掉电不丢数据吗?

是持久化的,因为 log 持久化了嘛。掉电不会丢数据,因为可以从 log 文件中恢复出来。恢复很简单,其实就是遍历 log 文件,然后解析出来就好。

那既然说到解析 log 文件,那么问题又来了,log 文件越大解析时间会越长,无限制增长这个是无法忍受的。

……

乐果   发表于   2023 年 10 月 09 日 标签:db 继续阅读

热评文章