Skip to main content
QUICK REVIEW

[论文解读] APEX: A High-Performance Learned Index on Persistent Memory

Baotong Lu, Jialin Ding|arXiv (Cornell University)|May 3, 2021
Parallel Computing and Optimization Techniques参考文献 47被引用 6
一句话总结

APEX 是一种高性能、持久化且支持并发的机器学习索引,专为持久内存(PM)设计,结合了学习索引对数据分布感知的高效性与针对持久内存的优化。通过整合 ALEX 的基于模型的结构与面向持久内存的数据布局、DRAM 中的元数据缓存以及延迟恢复机制,APEX 在 Intel DCPMM 上实现的吞吐量比现有 PM 索引高出最多 15 倍,并可在约 42ms 内完成即时恢复。

ABSTRACT

The recently released persistent memory (PM) offers high performance, persistence, and is cheaper than DRAM. This opens up new possibilities for indexes that operate and persist data directly on the memory bus. Recent learned indexes exploit data distribution and have shown great potential for some workloads. However, none support persistence or instant recovery, and existing PM-based indexes typically evolve B+-trees without considering learned indexes. This paper proposes APEX, a new PM-optimized learned index that offers high performance, persistence, concurrency, and instant recovery. APEX is based on ALEX, a state-of-the-art updatable learned index, to combine and adapt the best of past PM optimizations and learned indexes, allowing it to reduce PM accesses while still exploiting machine learning. Our evaluation on Intel DCPMM shows that APEX can perform up to ~15x better than existing PM indexes and can recover from failures in ~42ms.

研究动机与目标

  • 解决由于插入操作期间高 PM 写带宽消耗导致的学习索引在持久内存(PM)上存在性能瓶颈的问题。
  • 在学习索引中实现崩溃一致性与即时恢复,这类索引通常针对 DRAM 设计,缺乏持久性语义。
  • 通过将元数据和加速器缓存在 DRAM 中,减少 PM 访问次数,同时保持高搜索与插入性能。
  • 将面向 PM 的优化数据结构(如无序溢出桶)与学习索引抽象相结合,实现在不牺牲查找性能的前提下高效更新。
  • 通过利用延迟恢复与面向持久内存的同步机制,实现高吞吐量与低恢复时间。

提出的方法

  • 通过重构其数据布局与访问模式,将最先进的可更新学习索引 ALEX 适配为直接在持久内存上运行。
  • 将关键元数据(如模型参数、加速器)缓存在 DRAM 中,以减少 PM 访问次数,尤其针对查找与插入等高频操作。
  • 使用无序、追加只读的溢出桶进行插入操作,避免昂贵的数据移动,降低 PM 写带宽使用。
  • 采用宽松密度边界策略([0.5, 0.9]),以最小化结构修改操作(SMOs),从而减少 PM 写入与同步开销。
  • 通过 PMwCAS 与描述符池实现延迟恢复,支持即时重启,将完整一致性检查推迟至运行时。
  • 采用线程级并行恢复机制,同时恢复多个数据节点,缩短故障后预热时间。

实验结果

研究问题

  • RQ1学习索引能否在持久内存上高效且持久地部署,同时保持高性能与低 PM 带宽使用?
  • RQ2如何在持久内存上最小化学习索引中的结构修改操作(SMOs),以减少 PM 写带宽并提升可扩展性?
  • RQ3是否可以在不依赖内存中状态重建的前提下实现在学习索引中的即时恢复?其性能影响如何?
  • RQ4在结合学习索引与 PM 优化的混合索引设计中,PM 访问减少与 DRAM 使用之间的性能权衡是什么?
  • RQ5将基于模型的查找与面向 PM 的优化数据结构相结合,与基于传统 B+-tree 的 PM 索引相比,对吞吐量与恢复时间的影响如何?

主要发现

  • 在 Intel Optane DCPMM 上,APEX 在高并发工作负载下,吞吐量比现有 PM 优化索引(如 uTree、LB+Tree、FPTree)最高提升约 15 倍。
  • APEX 平均恢复时间约为 42ms,在 24 个线程下预热时间小于 1.9 秒,实现重启后的即时可用。
  • 将加速器与元数据缓存在 DRAM 中,使搜索性能提升 1.76 倍,插入性能提升 2.21 倍,证明了减少 PM 访问的有效性。
  • 采用宽松密度边界([0.5, 0.9])使 SMO 频率降低一半,性能提升 1.21 倍,同时减少 PM 写入次数。
  • 在从 Longitudes 加载 1 亿条记录后,APEX 仅消耗 0.23GB DRAM 与 2.14GB PM,表现出极低的 DRAM 占用与高容量利用率。
  • APEX 的恢复时间低于 1 秒,且随数据大小呈亚线性增长,优于 uTree(1 亿个键时耗时 43 秒)与 LB+Tree(1 亿个键时耗时 7.2 秒),与 FPTree 和 BzTree 竞争力相当。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。