返回
On Reducing Space Amplification with Multi-Column Compaction in Apache IoTDB
DOI:10.14778/3681954.3681977.png)
摘要
En 中文
日志结构合并树(LSM-trees)通常被用作现代时间序列数据库(包括Apache IoTDB)中写密集型工作负载的存储引擎。遵循追加写入原则,LSM-trees能够处理密集的写入和更新,但随之而来的是较高的空间放大(SA)。为了降低LSM-tree中的SA,定期触发压缩操作以重新组织磁盘上的大量不可变文件,从而消除冗余。这一问题在物联网(IoT)场景中进一步复杂化,其中频繁的无序数据插入和数据更新会导致多列数据中出现重复键、过时值和重叠位图,从而加剧SA问题。为缓解此类场景中的SA,本文在Apache IoTDB中提出了一种多列压缩(MCC)策略,该数据库是一个采用LSM-tree架构并支持多列存储的开源时间序列数据库。我们同时考虑了多列数据的独立插入(无序数据)和更新,并分析了在压缩中选择能够实现最大空间缩减的适当文件的选择难度。随后,我们提出了一种启发式方法,旨在改进文件选择,从而降低SA。为进一步提高该方法的效率,我们进一步设计了文件预取器(File Prefetcher)和压缩缓存(Compaction Cache)。所提出的MCC已在Apache IoTDB中实现。实验结果表明,我们提出的MCC在降低空间放大方面取得了更好的性能。
Keyword:
STORAGE ENGINE
DATABASE

