问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
LSM树是怎样进行维护的?
与可变B树类似,LSM树也需要维护。在B树中,维护过程收集未引用的单元格,对页进行碎片整理,并回收被移除和遮蔽的记录所占用的空间。在LSM树中,磁盘驻留表的数量不断增长,但可以通过触发周期性的压实来减少。
压实会挑选多个磁盘驻留表,使用合并和协调算法迭代它们的全部内容,并将结果写入新创建的表。
磁盘驻留表内容是有序的,而且由于归并排序的工作方式,压实操作有一个理论上的内存使用上限,因为它只在内存中保存迭代器头部元素。所有表的内容都是按顺序消耗的,合并的结果数据也是按顺序写出的。
在压实过程完成之前,正在被压实的表仍可用于读取。这意味着在压实期间,磁盘上需要有足够的可用空间来写入压实的表。
系统中可以同时执行多个压实操作。然而,这些并发的压实操作通常使用不相交的表集合。压实的写入者既可以将多个表合并为一个,也可以将一个表划分为多个表。
在压实过程中,墓碑不会被立即丢弃,它们会被保留,直到存储引擎可以确定在任何其他表中都不存在时间戳更小且键相同的数据记录。
评论
有用 4
墨值悬赏