Atlas: Leveraging Locks for Non-volatile Memory Consistency

Atlas: Leveraging Locks for Non-volatile Memory Consistency
复制标题

DOI:
10.1145/2660193.2660224
复制
发表时间:
2014-10-01
影响因子:
--
通讯作者:
Bhandari, Kumud
Bhandari, Kumud
中科院分区:
其他
文献类型:
--
作者:
Chakrabarti, Dhruva R.;Boehm, Hans-J.;Bhandari, Kumud

文献摘要

被引文献

相似文献

非易失性主存储器,如忆阻器或相变存储器,可以彻底改变程序保存数据的方式。内存中的对象本身可以是持久的,而不需要单独的持久数据存储格式。在本文中,我们提出了我们的系统,称为Atlas,它为基于锁的代码增加了持久性语义,通常允许我们在出现故障的情况下自动保持全局一致的状态。我们基于现有的关键节识别代码的失败原子节,并描述可用于在失败后恢复一致状态的基于日志的实现。我们将讨论几个微妙的语义问题和实现权衡。我们确认快速刷新CPU缓存的能力是核心实施瓶颈,并提出部分解决方案。实验结果证实了该方法的实用性,并提供了对这种系统的开销的洞察。
Non-volatile main memory, such as memristors or phase change memory, can revolutionize the way programs persist data. In-memory objects can themselves be persistent without the need for a separate persistent data storage format. However, the challenge is to ensure that such data remains consistent if a failure occurs during execution.In this paper, we present our system, called Atlas, which adds durability semantics to lock-based code, typically allowing us to automatically maintain a globally consistent state even in the presence of failures. We identify failure-atomic sections of code based on existing critical sections and describe a log-based implementation that can be used to recover a consistent state after a failure. We discuss several subtle semantic issues and implementation tradeoffs. We confirm the ability to rapidly flush CPU caches as a core implementation bottleneck and suggest partial solutions. Experimental results confirm the practicality of our approach and provide insight into the overheads of such a system.