编者按
日前,一篇题为《MetoHash: A Memory-Efficient and Traffic-Optimized Hashing Index on Hybrid PMem-DRAM Memories》的论文被高性能计算顶级会议SC 2025录用,并荣获最佳学生论文提名(该会议录用的 136 篇论文中选择 6 篇)。该论文由厦门大学、昆士兰大学与 OceanBase 的研究人员联合完成。其中,厦门大学硕士生余子祥、邓光阳为共同第一作者,沈志荣教授为通讯作者;昆士兰大学鲍芝峰教授,以及 OceanBase 的徐泉清、杨传辉研究员共同参与了此项研究。
SC 由美国计算机协会(ACM)与美国电气电子工程师学会(IEEE)于 1988 年共同创办,是全球高性能计算领域公认的年度顶级盛会,是中国计算机学会 CCF 推荐的 A 类国际会议。SC 2025 会议共收到 643 篇投稿,接收 136 篇,录用率 21.2%。
本论文的核心思想是构建一个跨越 CPU 缓存、DRAM 和 PMem 的三层索引架构,让数据在层次化存储中高效流动。
简 介
随着数据密集型应用的快速增长,能够实现常数级查找复杂度的哈希索引已成为构建内存数据库、键值存储和重复数据删除系统的核心组件。传统哈希索引在面对新兴的持久内存时,虽然利用了其大容量和数据持久性优势,却在存储流量放大和内存效率方面面临严峻挑战。
持久内存以其大容量、数据持久性、近 DRAM 性能等特性,为内存架构带来革命性变革。然而,PMem 的固定访问粒度和持久化 CPU 缓存特性,使得传统哈希索引设计难以充分发挥其硬件潜力,其原因在于现有方案极易放大存储 I/O 或降低内存效率。
本文提出的 MetoHash 通过层次化设计、批量持久、指纹过滤、重复合并等关键技术,系统性地解决了现有方案在流量放大与内存效率上的痛点,为高性能键值存储、内存数据库、实时分析等应用提供了强大的底层支撑。
核心理念:三层协同,让数据在混合内存中“各得其所”
传统哈希索引在面对由持久内存(PMem)和动态随机存取内存(DRAM)构成的混合内存系统时,面临一个根本性矛盾:若为追求 PMem 的持久性而将索引完全置于其中,则会因 PMem 较高的访问延迟和固定的写入粒度导致严重的性能下降和 I/O 放大;若为追求速度而将索引完全置于 DRAM,则又无法利用 PMem 的大容量和持久化优势。
MetoHash 的创新核心理念在于“解耦与协同”。它不再将哈希索引视为一个单一的整体,而是将其功能拆解,并根据 CPU 缓存、DRAM 和 PMem 的不同硬件特性进行重新部署,构建了一个三层的高效数据管理流水线。其目标是让热数据、元数据和海量持久化数据分别在最适合的存储层级上被处理,从而在整体上实现高吞吐、低延迟、低流量和高内存效率的统一。
图1 MetoHash 的三层索引结构
核心技术一:缓存辅助的批量收集写入
此技术旨在根治向 PMem 进行小粒度插入时引发的“写放大”(Write Amplification)与频繁桶探测问题。其方案是在持久性 CPU 缓存中预分配多个与 PMem 访问粒度对齐的“收集表”(Collecting Table)。新到达的键值对根据哈希值被直接路由到相应收集表,并通过原子操作实现无锁快速插入,从而充分利用缓存的高速与持久化特性。当一个收集表被填满时,其包含的多个键值对将作为一个完整的、与 PMem 最佳写入粒度匹配的数据单元,被一次性顺序刷写到 PMem 的备份日志中。这种方法彻底消除了因写入粒度不匹配带来的额外 I/O 流量,充分利用 PMem 的写入带宽,同时将零散插入转化为高效批量操作。
图2 持久缓存刷入 DRAM 和 PMem 中
核心技术二:基于 DRAM 指纹的反向精准查找
该技术致力于解决在混合多层索引中查询时在 PMem 层进行盲目、耗时的桶探测的瓶颈。其核心是在 DRAM 中维护一个紧凑的“指纹”目录,其本质为 PMem 主哈希表中的每个键哈希值的一个简短片段。
在进行查询时,系统首先计算查询键的指纹,并利用 SIMD 指令等在 DRAM 指纹目录中进行高速并行比对,迅速筛选出 PMem 中少数几个可能匹配的位置。只有这些候选位置,才需要访问 PMem 进行精确的键值比较。整个查询遵循 PMem 主表 → DRAM 表 → CPU 缓存收集表的反向路径,确保定位到有效值。这一设计将耗时的海量比对操作从慢速的 PMem 转移至高速的 DRAM,极大减少了查询延迟与 PMem 访问压力。
图3 DRAM 结构刷入 PMem 中,并在 DRAM 中保留指纹
核心技术三:段分裂驱动的重复项消除与空间回收
为解决“先插入后检查”模式可能产生的键重复问题以及删除操作导致的空间碎片化问题,MetoHash 在数据结构段分裂中引入合并与清理机制。
首先,DRAM 桶与 PMem 桶在逻辑布局上严格对齐,使得 DRAM 桶满时其内容能高效批量刷写至 PMem 对应位置。当 PMem 中某个段需要分裂以扩容时,系统将旧段所有数据读入 DRAM,在此过程中主动识别并消除同一键的多个版本的无效值,仅保留其最新的有效项,并将合并、去重后的结果写入新分配的段。此过程自然跳过了已标记删除的项,从而在完成容量扩展的同时,一举实现了存储空间的即时回收与整理,保持了 PMem 存储的紧凑性与查询效率。
性能成果
在实际搭载英特尔傲腾持久内存的测试平台上,MetoHash 与八种前沿方案进行了全面对比。
①吞吐量提升:在 YCSB 等各类负载下,其吞吐量平均超越以往方案 86.1% 至 257.6%,并呈现近线性扩展能力。
图4 MetoHash 相较其他基线索引在不同负载下均有明显优势
②变长数据支持:在处理 16B 至 256B 的变长键值时,其吞吐量平均仍领先对比方案 190.8%,尤其在小值主导的负载中优势显著。
图5 MetoHash 相较于其他基线索引在不同键值对大小下均有明显优势
③内存效率权衡:相比将全部索引存于 DRAM 的方案(如 VIPER),MetoHash 的 DRAM 占用减少 86.7%;相比 PMem 利用率低的方案 (如 Plush),MetoHash 的 PMem 占用减少 86.5%。
图6 MetoHash 相较于其他基线索引能够取得较好的 DRAM/PMem 效率权衡
小结
这项工作提出的 MetoHash 混合内存哈希索引,为持久内存时代的高性能、高内存效率数据管理提供了系统的解决方案。在理论上,MetoHash 首次通过缓存、DRAM、PMem 三层协同的架构,解决了由 PMem 固定访问粒度引发的 I/O 放大与内存效率低下这一对核心矛盾。在实践中,其在多种负载下的吞吐量相较当前方案平均提升 86.1% 至 257.6%,存储流量大幅降低,内存占用显著优化,在多种负载中验证了其卓越性能。
想了解更多行业资讯
扫码关注👇

了解更多考试相关
扫码添加上智启元官方客服微信👇

17认证网








