论文标题

基于扁平组合的持续数据结构,用于非易失性记忆

Flat-Combining-Based Persistent Data Structures for Non-Volatile Memory

论文作者

Rusanovsky, Matan, Attiya, Hagit, Ben-Baruch, Ohad, Gerby, Tom, Hendler, Danny, Ramalhete, Pedro

论文摘要

平面组合(FC)是一种同步范式,其中一个线程(持有全局锁)通过多个线程收集请求以访问并发数据结构并将其组合请求应用于其。尽管FC是顺序的,但它大大降低了同步开销和缓存无效,因此通常比无锁实现的性能更好。非易失性记忆(NVM)技术的最新出现增加了对持续并发对象发展的兴趣。这些对象能够从系统故障中恢复并通过将其状态保留在NVM中并在恢复时将其固定来确保一致性。特别有趣的是可检测的对象,除了确保一致性之外,还可以推断出恢复代码是否在坠机前生效,并且(如果确实如此)获得其响应。在这项工作中,我们介绍了第一个基于FC的持久性对象实现。具体而言,我们引入了可检测到的基于FC的同时LIFO堆栈,并发的FIFO队列和双层队列的实现。我们的经验评估确定,由于平坦的组合,新颖的实现需要比竞争算法要少得多的昂贵持久说明,因此能够显着胜过它们。

Flat combining (FC) is a synchronization paradigm in which a single thread, holding a global lock, collects requests by multiple threads for accessing a concurrent data structure and applies their combined requests to it. Although FC is sequential, it significantly reduces synchronization overheads and cache invalidations and thus often provides better performance than that of lock-free implementations. The recent emergence of non-volatile memory (NVM) technologies increases the interest in the development of persistent concurrent objects. These are objects that are able to recover from system failures and ensure consistency by retaining their state in NVM and fixing it, if required, upon recovery. Of particular interest are detectable objects that, in addition to ensuring consistency, allow recovery code to infer if a failed operation took effect before the crash and, if it did, obtain its response. In this work, we present the first FC-based persistent object implementations. Specifically, we introduce a detectable FC-based implementation of a concurrent LIFO stack, a concurrent FIFO queue, and a double-ended queue. Our empirical evaluation establishes that due to flat combining, the novel implementations require a much smaller number of costly persistence instructions than competing algorithms and are therefore able to significantly outperform them.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源