In this paper, we study the question whether techniques employed, in a conventional system, by state-of-the-art concurrent algorithms to avoid contended hot spots are still efficient for recoverable computing in settings with Non-Volatile Memory (NVM). We focus on concurrent FIFO queues that have two end-points, head and tail, which are highly contended. We present a persistent FIFO queue implementation that performs a pair of persistence instructions per operation (enqueue or dequeue). The algorithm achieves to perform these instructions on variables of low contention by employing Fetch&Increment and using the state-of-the-art queue implementation by Afek and Morrison (PPoPP'13). These result in performance that is up to 2x faster than state-of-the-art persistent FIFO queue implementations.
翻译:本文研究了在传统系统中,现有并发算法为避免竞争热点所采用的技术,是否仍适用于非易失性内存环境下的可恢复计算。我们重点关注具有头部和尾部两个高度竞争端点的并发FIFO队列。本文提出了一种持久化FIFO队列实现,每个操作(入队或出队)仅执行一对持久化指令。该算法通过采用Fetch&Increment操作并利用Afek与Morrison(PPoPP'13)提出的最先进队列实现,成功将持久化指令应用于低竞争变量。实验结果表明,该算法性能比现有最优持久化FIFO队列实现快达2倍。