暂无图片
LSM树是怎样进行维护的?
我来答
分享
2023-02-10
LSM树是怎样进行维护的?

LSM树是怎样进行维护的?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
晴天

与可变B树类似,LSM树也需要维护。在B树中,维护过程收集未引用的单元格,对页进行碎片整理,并回收被移除和遮蔽的记录所占用的空间。在LSM树中,磁盘驻留表的数量不断增长,但可以通过触发周期性的压实来减少。

压实会挑选多个磁盘驻留表,使用合并和协调算法迭代它们的全部内容,并将结果写入新创建的表。

磁盘驻留表内容是有序的,而且由于归并排序的工作方式,压实操作有一个理论上的内存使用上限,因为它只在内存中保存迭代器头部元素。所有表的内容都是按顺序消耗的,合并的结果数据也是按顺序写出的。

在压实过程完成之前,正在被压实的表仍可用于读取。这意味着在压实期间,磁盘上需要有足够的可用空间来写入压实的表。

系统中可以同时执行多个压实操作。然而,这些并发的压实操作通常使用不相交的表集合。压实的写入者既可以将多个表合并为一个,也可以将一个表划分为多个表。

在压实过程中,墓碑不会被立即丢弃,它们会被保留,直到存储引擎可以确定在任何其他表中都不存在时间戳更小且键相同的数据记录。

暂无图片 评论
暂无图片 有用 4
暂无图片
三笠丶
暂无图片

LSM树是一种基于磁盘的数据结构,它被设计用来通过把内存中的少量数据维护在磁盘上,来有效地支持大量数据查询和更新。LSM树通过一种叫做“环境合并”(environment merging)的算法将不存在了的元素从树中移除,同时将新的元素加入到树中。每次算法执行后,树都会得到一个更有序的结构。此外,每次当内存到达一定大小时,都会将占据内存的数据持久化到磁盘以尽量减少磁盘操作次数。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏