We study the performance power of software combining in designing persistent algorithms and data structures. We present Bcomb, a new blocking highly-efficient combining protocol, and built upon it to get PBcomb, a persistent version of it that performs a small number of persistence instructions and exhibits low synchronization cost. We built fundamental recoverable data structures, such as stacks and queues based on PBcomb, as well as on PWFcomb, a wait-free universal construction we present. Our experiments show that PBcomb and PWFcomb outperform by far state-of-the-art recoverable universal constructions and transactional memory systems, many of which ensure weaker consistency properties than our algorithms. We built recoverable queues and stacks, based on PBcomb and PWFcomb, and present experiments to show that they have much better performance than previous recoverable implementations of stacks and queues. We build the first recoverable implementation of a concurrent heap and present experiments to show that it has good performance when the size of the heap is not very large.
翻译:我们研究软件在设计持久性算法和数据结构时的性能。我们展示了Bcomb,这是一个新的阻塞高效的新型联合协议,并以此为基础开发了PBcomb,这是它的一个持久性版本,它运行了少量的持久性指令和低同步成本。我们建立了基本的可恢复数据结构,例如基于PBcomb的堆叠和排队,以及基于PWFcomb的PWFcomb,这是我们所展示的无等待的通用建筑。我们的实验显示,PBcomb和PWFcomb在远为最先进的可回收通用建筑和交易存储系统上优于性能,其中许多保证了比我们的算法更差的一致性性。我们根据PBcomb和PWFScomb建造了可恢复的队列和堆叠,并进行了实验,以表明它们比以前可回收的堆叠和排队的安装工作要好得多。我们所展示的首次可恢复的堆叠,并展示了可同时进行堆叠和演示,以显示在堆积规模不大的情况下,它的性能良好。