Josiah02 发表于 2024-9-2 16:02:45

HeterMM:将 DRAM 索引应用于基于异构内存的键值存储

新兴的字节可寻址存储技术(例如 NVM)提供了比 DRAM 更具成本效益和更大容量的替代方案,为解决内存中键值(KV)存储的高成本、容量有限和波动性提供了新的机会。
人们付出了很多努力来重新设计 NVM 上的传统结构。然而,为了将其集成到现有系统中,它们面临着巨大的工程成本和增加的复杂性的挑战。因此,需要一个将现有索引应用于 NVM 上的 KV 存储的通用框架。
周轩领导的研究团队提出了一种通用框架HeterMM,用于由DRAM和NVM组成的异构内存架构。它旨在充分利用DRAM的卓越性能,并使系统性能尽可能接近DRAM内的性能。这项研究发表在《计算机科学前沿》杂志上。
框架概述
该团队强调充分利用 DRAM 的卓越性能的重要性,将索引和热数据保存在 DRAM 中。通常,NVM 的性能不如 DRAM。其特定的访问特性也需要特殊设计才能最大限度地发挥其性能。
NVM的典型特征是其在延迟和带宽方面的读写不对称性,以及与顺序访问相比随机访问性能较差。针对这一问题,研究团队提出了一个由可插入的DRAM内索引、异构内存上的数据存储机制和用于故障恢复的操作日志组成的框架。
尤其是索引,访问频率最高,且通常以小单元和随机顺序排列,对NVM并不友好,它们的数据结构通常针对DRAM进行了优化,在NVM上可能性能不佳。
HeterMM 中新写入的数据驻留在 DRAM 中,旧数据则分批刷新到 NVM。每条数据到达时都会分配一个逻辑地址,除非数据被异地更新,否则该地址保持不变。
NVM 的持久化可以保证驻留在其中的数据的持久性,而 DRAM 中则通过操作日志来保证数据的持久性。首先,DRAM 中的数据是就地更新的,这可以看作是早期的 compaction,可以减少刷新到 NVM 的数据量。其次,NVM 中的数据可以看作是一个检查点,可以用来切断操作日志。
为了优化对 NVM 中只读数据的访问,DRAM 区域被划分为读取缓存和写入区域,前者保存 NVM 中经常访问的数据,而后者保存新到达的数据。它们在 DRAM 中共享相同的空间,并且可以根据工作负载动态调整大小。
将 HeterMM 与不同类型的索引(包括 CLHT、LFHT 和 B+ 树)相结合的大量实验验证了 HeterMM 的效率。具体而言,HeterMM 可以胜过最先进的索引持久框架以及最先进的混合 DRAM 和 NVM 哈希表和 B+ 树。这得益于 HeterMM 将热数据保存在 NVM 中,从而允许 DRAM 处理读取请求而无需访问 NVM。

页: [1]
查看完整版本: HeterMM:将 DRAM 索引应用于基于异构内存的键值存储