A Fast, General System for Buffered Persistent Data Structures

A Fast, General System for Buffered Persistent Data Structures
复制标题

DOI:
10.1145/3472456.3472458
复制
发表时间:
2021-08
期刊:
Proceedings of the 50th International Conference on Parallel Processing
影响因子:
--
通讯作者:
Haosen Wen;Wentao Cai;Mingzhe Du;Louis Jenkins
Haosen Wen;Wentao Cai;Mingzhe Du;Louis Jenkins
中科院分区:
其他
文献类型:
--
作者:
Haosen Wen;Wentao Cai;Mingzhe Du;Louis Jenkins

文献摘要

被引文献

相似文献

快速、密集、非易失性主存的出现表明,某些长期存在的数据可能会在程序运行和硬件重启时保持其自然的指针丰富格式。对这些数据的操作目前必须使用显式的写回和围栏指令来进行检测,以确保崩溃后的一致性。使这种仪器的成本最小化的技术是一个活跃的研究课题。我们提出了我们认为是第一个通用的方法来构建缓冲持久数据结构,和一个系统,蒙太奇,以支持这种方法。Montage构建在Ralloc非阻塞持久分配器之上。它采用毫秒粒度的历元时钟,并确保没有操作出现跨越历元边界。它还安排只持久化崩溃后重建结构所需的最低限度的数据。如果崩溃发生在epoch e,epoch e和e-1中执行的所有工作都将丢失,但之前epoch的工作将始终保留。与传统的文件和数据库系统一样,同步操作可以用于按需刷新缓冲区;蒙太奇同步速度非常快。我们描述了蒙太奇的实现,认为它的正确性,并报告前所未有的吞吐量持久队列,集/映射,和一般的图形。
The emergence of fast, dense, nonvolatile main memory suggests that certain long-lived data might remain in their natural pointer-rich format across program runs and hardware reboots. Operations on such data must currently be instrumented with explicit write-back and fence instructions to ensure consistency in the wake of a crash. Techniques to minimize the cost of this instrumentation are an active topic of research. We present what we believe to be the first general-purpose approach to building buffered persistent data structures, and a system, Montage, to support that approach. Montage is built on top of the Ralloc nonblocking persistent allocator. It employs a millisecond-granularity epoch clock, and ensures that no operation appears to span an epoch boundary. It also arranges to persist only that data minimally required to reconstruct the structure after a crash. If a crash occurs in epoch e, all work performed in epochs e and e − 1 is lost, but work from prior epochs is preserved, consistently. As in traditional file and database systems, a sync operation can be used to flush buffers on demand; the Montage sync is extremely fast. We describe the implementation of Montage, argue its correctness, and report unprecedented throughput for persistent queues, sets/mappings, and general graphs.