论文标题
分解内存墙:基于LSM的存储系统中的自适应内存管理(扩展版)
Breaking Down Memory Walls: Adaptive Memory Management in LSM-based Storage Systems (Extended Version)
论文作者
论文摘要
对数结构合并树(LSM-Trees)已被广泛用于现代NOSQL系统。由于其非客场更新设计,LSM树在多个LSM-Trees的内存组件之间以及写入内存和缓冲区缓存之间引入了内存墙。这些区域之间的最佳记忆分配是非平凡的,因为它高度依赖于工作负载。现有的LSM-TREE实现是由于其简单性和鲁棒性而采用静态内存分配方案,从而牺牲了性能。在本文中,我们试图在基于LSM的存储系统中分解这些记忆墙。我们首先提出一个可实现自适应内存管理的内存管理体系结构。然后,我们提出一个具有新的冲洗策略的分区内存组件结构,以更好地利用写入存储器以最大程度地减少写入成本。为了打破写入内存和缓冲区缓存之间的内存墙,我们进一步引入了一个内存调谐器,该内存调谐器调谐这两个区域之间的内存分配。我们已经使用YCSB和TPC-C基准在Apache AsterixDB的背景下进行了广泛的实验,我们在此处介绍了结果。
Log-Structured Merge-trees (LSM-trees) have been widely used in modern NoSQL systems. Due to their out-of-place update design, LSM-trees have introduced memory walls among the memory components of multiple LSM-trees and between the write memory and the buffer cache. Optimal memory allocation among these regions is non-trivial because it is highly workload-dependent. Existing LSM-tree implementations instead adopt static memory allocation schemes due to their simplicity and robustness, sacrificing performance. In this paper, we attempt to break down these memory walls in LSM-based storage systems. We first present a memory management architecture that enables adaptive memory management. We then present a partitioned memory component structure with new flush policies to better exploit the write memory to minimize the write cost. To break down the memory wall between the write memory and the buffer cache, we further introduce a memory tuner that tunes the memory allocation between these two regions. We have conducted extensive experiments in the context of Apache AsterixDB using the YCSB and TPC-C benchmarks and we present the results here.