Skip to main content
QUICK REVIEW

[论文解读] Data Structure Primitives on Persistent Memory: An Evaluation

Philipp Götze, Arun Kumar Tharanatha|arXiv (Cornell University)|Jan 7, 2020
Advanced Data Storage Technologies参考文献 20被引用 6
一句话总结

本文通过将现有的基于树的持久内存(PMem)数据结构分解为基本构建模块,对持久内存中的低级别数据结构原语进行了评估。基于真实持久内存硬件的实验结果识别出最优原语,例如使用位图的哈希探测技术用于数据节点,以及用于内部节点的排序布局,为写入密集型、点查询或迭代密集型工作负载提供了性能权衡与设计指导。

ABSTRACT

Persistent Memory (PMem), as already available, e.g., with Intel Optane DC Persistent Memory, represents a very promising, next-generation memory solution with a significant impact on database architectures. Several data structures for this new technology and its properties have already been proposed. However, primarily only complete structures are presented and evaluated. Thus, the implications of the individual ideas and PMem features are concealed. Therefore, in this paper, we disassemble the structures presented so far, identify their underlying design primitives, and assign them to appropriate design goals regarding PMem. As a result of our comprehensive experiments on real PM hardware, we can reveal the trade-offs of the primitives for various access patterns. This allowed us to pinpoint their best use cases as well as vulnerabilities. Besides our general insights regarding PMem-based data structure design, we also discovered new combinations not examined in the literature so far.

研究动机与目标

  • 超越对持久内存数据结构的 monolithic(整体式)评估,转而分析其底层低级别设计原语。
  • 识别并分类解决持久内存特有问题的核心原语,如写入放大、持久性与一致性。
  • 在英特尔傲腾数据中心持久内存硬件上,针对真实世界访问模式评估这些原语。
  • 为数据库与系统研究人员构建持久内存优化数据结构提供可操作的设计洞见与性能权衡。
  • 发现文献中尚未探索的原语新组合,尤其适用于混合 DRAM/PMem 系统。

提出的方法

  • 将现有持久内存数据结构(如 B+树、跳表、LSM-树)分解为原子设计原语,如哈希、位图、间接寻址与排序布局。
  • 将每个原语映射到三个关键设计目标之一:减少写入、支持细粒度访问、确保一致/持久操作。
  • 在真实 DCPMM 硬件上,使用微基准测试对 10 种不同的低级别访问模式(如查找、插入、删除、迭代)进行定义与评估。
  • 使用英特尔的内存延迟检查器与灵活 I/O 测试工具,在受控条件下测量延迟与性能。
  • 评估 PMDK 事务机制,并与手工实现的原子性机制进行比较,以评估性能开销。
  • 提出一种混合 DRAM/PMem 架构,用于性能关键工作负载,其中内部节点存储在 DRAM 中,数据节点存储在 PMem 中。

实验结果

研究问题

  • RQ1在不同访问模式(如点查询、扫描、更新)下,哪些持久内存中的低级别数据结构原语能提供最佳性能?
  • RQ2原语组合(如哈希 + 位图、间接寻址 + 排序布局)如何影响性能与写入放大?
  • RQ3在持久内存中使用 PMDK 事务与自定义原子更新机制相比,性能影响如何?
  • RQ4内存布局(如 256B 与 1KB 节点大小)以及缓存行对齐如何影响真实 DCPMM 硬件上的性能?
  • RQ5持久内存数据结构中的性能瓶颈是什么?如何通过原语选择与分配策略加以缓解?

主要发现

  • 对于包含大量点查询与删除操作的工作负载,使用位图的哈希探测技术(1 KiB 大小)在数据节点上表现最佳。
  • 在 DRAM 中存储的内部节点采用间接寻址与排序布局,可显著减少指针跳转带来的性能下降,并提升遍历效率。
  • PMDK 事务引入了显著的性能开销——相比手工实现的原子更新,最慢可达 10 倍,因此不适合性能关键型应用。
  • 对缓存行的顺序访问远快于非顺序访问;在间接寻址与迭代模式中,跨缓存行跳转会严重降低性能。
  • PMem 中的内存分配成本高昂,应通过分组分配与节点复用策略最小化;频繁的分配与释放会严重损害性能。
  • 基于 PMem 的索引结构的最优节点大小介于 256 字节与 1 KiB 之间,可在写入合并缓冲效率与搜索结构开销之间取得良好平衡。

更好的研究,从现在开始

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

无需绑定信用卡

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