带你全面了解compaction 的13个问题
作者: h5n1 原文来源:https://tidb.net/blog/eedf77ff 1 概述 TiKV 底层存储引擎使用 RocksDB ,RocksDB 是一个基于 LSM tree 的单机嵌入式数据库, 对于LSM Tree 来说compaction是个非常重要的操作,本文对TiKV中涉及的compaction相关内容进行了整理总结。 2 为什么需要 compaction ?  LSM Tree 通过将所有的数据修改操作转换为追加写方式:对于 insert 直接写入新的kv,对于 update 则写入修改后的kv,对于 delete 则写入一条 tombstone 标记删除的记录。通过这种方式将磁盘的随机写入转换为顺序写从而提高了写入性能,但不能进行 in-place 更新,由此带来了以下问题: 1、 大量的冗余和无效数据占用磁盘空间,造成空间放大。 2、 读取数据时如果内存中没有的话,需要从L0...