Skip to main content
QUICK REVIEW

[论文解读] Durable Queues

Gal Sela, Erez Petrank|arXiv (Cornell University)|Jul 6, 2021
Parallel Computing and Optimization Techniques参考文献 36被引用 1
一句话总结

本文提出了一种高性能、无锁且持久线性化的队列,适用于非易失性主内存,通过最小化持久化操作次数和对已刷新数据的访问次数来实现。通过优化缓存效率并减少昂贵的缓存失效,所提出的持久队列优于现有最先进解决方案,表明最小化对已刷新内容的访问与最小化持久化指令同样关键。

ABSTRACT

We consider durable data structures for non-volatile main memory, such as the new Intel Optane memory architecture. Substantial recent work has concentrated on making concurrent data structures durable with low overhead, by adding a minimal number of blocking persist operations (i.e., flushes and fences). In this work we show that focusing on minimizing the number of persist instructions is important, but not enough. We show that access to flushed content is of high cost due to cache invalidation in current architectures. Given this finding, we present a design of the queue data structure that properly takes care of minimizing blocking persist operations as well as minimizing access to flushed content. The proposed design outperforms state-of-the-art durable queues. We start by providing a durable version of the Michael Scott queue (MSQ). We amend MSQ by adding a minimal number of persist instructions, fewer than in available durable queues, and meeting the theoretical lower bound on the number of blocking persist operations. We then proceed with a second amendment to this design, that eliminates accesses to flushed data. Evaluation shows that the second amendment yields substantial performance improvement, outperforming the state of the art and demonstrating the importance of reduced accesses to flushed content. The presented queues are durably linearizable and lock-free. Finally, we discuss the theoretical optimal number of accesses to flushed content.

研究动机与目标

  • 解决非易失性主内存中因对已刷新数据的高成本访问而导致的持久并发数据结构性能瓶颈。
  • 设计一种持久队列,满足持久操作中阻塞性持久化指令数量的理论下限,同时减少对已刷新内容的访问。
  • 通过优化持久化操作和数据访问模式,实现优于现有持久队列的卓越性能。
  • 为持久数据结构中对已刷新内容的访问次数建立理论基础。

提出的方法

  • 从广为人知的无锁队列 Michael Scott 队列(MSQ)出发,通过添加最少数量的持久化指令以确保持久性。
  • 应用理论下限分析,确保持久化操作次数最小化,达到理论最小值。
  • 引入第二项优化,消除对已刷新内存位置的读取,减少缓存失效并提升性能。
  • 确保最终数据结构保持持久线性化且无锁,维持在持久内存语义下的正确性。
  • 战略性地使用内存屏障和刷新操作,以强制实现持久性,同时不牺牲并发性。
  • 分析并比较不同队列设计中对已刷新数据的访问模式,量化其对性能的影响。

实验结果

研究问题

  • RQ1在非易失性内存中,实现持久且无锁队列所需的最优持久化操作次数是多少?
  • RQ2对已刷新数据的访问在持久并发数据结构中如何影响性能?
  • RQ3能否通过减少对已刷新内容的访问,显著提升持久队列的性能,而不仅仅是最小化持久化操作?
  • RQ4持久数据结构中对已刷新内容的访问次数的理论下限是多少?
  • RQ5如何设计一种持久队列,使其在最小化持久化操作和已刷新数据访问的同时,保持无锁和持久线性化?

主要发现

  • 在当前架构中,对已刷新数据的访问因缓存失效而产生高昂性能开销,这已成为超越持久化操作成本的关键瓶颈。
  • 所提出的队列设计同时减少了持久化操作次数和对已刷新内容的访问次数,与现有持久队列相比表现出更优性能。
  • 第二项优化——消除对已刷新数据的读取——带来了显著的性能提升,表明最小化对已刷新内容的访问与最小化持久化指令同等重要。
  • 最终设计达到了持久化操作次数的理论下限,证实了其在该维度上的最优性。
  • 所提出的队列既满足持久线性化又为无锁结构,确保在持久内存语义下的正确性和并发安全性。
  • 本研究为持久数据结构中对已刷新内容的最优访问次数建立了理论基础,为未来持久数据结构设计提供了基准。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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