The recent availability of fast, dense, byte-addressable non-volatile memory has led to increasing interest in the problem of designing and specifying durable data structures that can recover from system crashes. However, designing durable concurrent data structures that are efficient and also satisfy a correctness criterion has proven to be very difficult, leading many algorithms to be inefficient or incorrect in a concurrent setting. In this paper, we present a general transformation that takes a lock-free data structure from a general class called traversal data structure (that we formally define) and automatically transforms it into an implementation of the data structure for the NVRAM setting that is provably durably linearizable and highly efficient. The transformation hinges on the observation that many data structure operations begin with a traversal phase that does not need to be persisted, and thus we only begin persisting when the traversal reaches its destination. We demonstrate the transformation's efficiency through extensive measurements on a system with Intel's recently released Optane DC persistent memory, showing that it can outperform competitors on many workloads.
翻译:最近,快速、密集、字节处理的非挥发性记忆的可用性导致人们越来越关注设计和指定能够从系统崩溃中恢复过来的耐久数据结构的问题。然而,设计高效和符合正确标准的持久并行数据结构证明是非常困难的,导致许多算法在同时的环境中效率低下或不正确。在本文件中,我们提出了一个总体转型,从一个称为Transeral数据结构(我们正式定义的)的一般类别中取而代之的无锁数据结构,并自动将其转化为实施NVRAM设置的数据结构,该设置可以明显地可线性地可线性地和高度高效。这一转型取决于这样的观察,即许多数据结构操作从一个不需要持续进行跨轨阶段开始,因此我们只是在跨轨到达目的地时才开始坚持。我们通过对Intel最近发布的Optane DC持续记忆系统进行广泛的测量来证明这一转变的效率,表明它能够超越许多工作量的竞争者。