MOD: Minimally Ordered Durable Datastructures for Persistent Memory

MOD: Minimally Ordered Durable Datastructures for Persistent Memory
复制标题

DOI:
10.1145/3373376.3378472
复制
发表时间:
2019-08
期刊:
Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子:
--
通讯作者:
Swapnil Haria;M. Hill;M. Swift
Swapnil Haria;M. Hill;M. Swift
中科院分区:
其他
文献类型:
--
作者:
Swapnil Haria;M. Hill;M. Swift

文献摘要

相似文献

永久内存(PM)使可恢复的应用程序成为可能,这些应用程序可以在系统重新启动和电源故障时保留应用程序进度。实际的可恢复性要求对缓存行刷新进行仔细排序,目前有两种极端的方法。一方面,专业程序员已经深入地考虑了一致性和持久性,以创建以单个定制的持久数据结构为中心的应用程序。另一方面,不太专业的程序员已经使用软件事务存储器(STM)来进行原子的一个或多个更新,尽管主要由于有序的日志更新而导致显著的性能成本。在这项工作中,我们提出了一个中间立场的组合持久数据结构称为最小有序持久数据结构(MOD)。我们将MOD原型化为一个C++数据结构库-目前,映射,集合,堆栈,队列和向量-通常比STM性能更好,而且相对容易使用。它们允许对一个或多个数据结构的多次更新相对于失败是原子的。此外,我们提供了一个配方来创建额外的可恢复的数据结构。MOD的动机是我们对真实的英特尔Optane PM硬件的分析表明,允许无序的重叠刷新可以显著提高性能。MOD通过调整现有的技术来减少排序,以适应不适当的更新(如影子分页),并减少空间结构共享(来自函数式编程)。MOD公开了一个用于单个更新的Basic接口和一个用于原子地执行多个更新的Composition接口。相对于广泛使用的英特尔PMDK v1.5 STM,MOD将映射、集合、堆栈、队列微基准测试性能提高了40%,并将应用程序基准测试性能提高了38%。
Persistent Memory (PM) makes possible recoverable applications that can preserve application progress across system reboots and power failures. Actual recoverability requires careful ordering of cacheline flushes, currently done in two extreme ways. On one hand, expert programmers have reasoned deeply about consistency and durability to create applications centered on a single custom-crafted durable datastructure. On the other hand, less-expert programmers have used software transaction memory (STM) to make atomic one or more updates, albeit at a significant performance cost due largely to ordered log updates. In this work, we propose the middle ground of composable persistent datastructures called Minimally Ordered Durable datastructures (MOD). We prototype MOD as a library of C++ datastructures---currently, map, set, stack, queue and vector---that often perform better than STM and yet are relatively easy to use. They allow multiple updates to one or more datastructures to be atomic with respect to failure. Moreover, we provide a recipe to create additional recoverable datastructures. MOD is motivated by our analysis of real Intel Optane PM hardware showing that allowing unordered, overlapping flushes significantly improves performance. MOD reduces ordering by adapting existing techniques for out-of-place updates (like shadow paging) with space-reducing structural sharing (from functional programming). MOD exposes a Basic interface for single updates and a Composition interface for atomically performing multiple updates. Relative to widely used Intel PMDK v1.5 STM, MOD improves map, set, stack, queue microbenchmark performance by 40%, and speeds up application benchmark performance by 38%.