Object-Oriented Recovery for Non-volatile Memory

被引:0
作者
Cohen, Nachshon [1 ]
Aksun, David T. [1 ]
Larus, James R. [1 ]
机构
[1] Ecole Polytech Fed Lausanne, Lausanne, Switzerland
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2018年 / 2卷
关键词
non-volatile memory; NVM; C++; object-oriented programming; programming model;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
New non-volatile memory (NVM) technologies enable direct, durable storage of data in an application's heap. Durable, randomly accessible memory facilitates the construction of applications that do not lose data at system shutdown or power failure. Existing NVM programming frameworks provide mechanisms to consistently capture a running application's state. They do not, however, fully support object-oriented languages or ensure that the persistent heap is consistent with the environment when the application is restarted. In this paper, we propose a new NVM language extension and runtime system that supports object-oriented NVM programming and avoids the pitfalls of prior approaches. At the heart of our technique is object reconstruction, which transparently restores and reconstructs a persistent object's state during program restart. It is implemented in NVMReconstruct ion, a Clang/LLVM extension and runtime library that provides: (i) transient fields in persistent objects, (ii) support for virtual functions and function pointers, (iii) direct representation of persistent pointers as virtual addresses, and (iv) type-specific reconstruction of a persistent object during program restart. In addition, NVMReconstruction supports updating an application's code, even if this causes objects to expand, by providing object migration. NVMReconstruction also can compact the persistent heap to reduce fragmentation. In experiments, we demonstrate the versatility and usability of object reconstruction and its low runtime performance cost.
引用
收藏
页数:22
相关论文
共 51 条
  • [1] Resistive Random Access Memory (ReRAM) Based on Metal Oxides
    Akinaga, Hiroyuki
    Shima, Hisashi
    [J]. PROCEEDINGS OF THE IEEE, 2010, 98 (12) : 2237 - 2251
  • [2] ANDREWS T, 1987, SIGPLAN NOTICES, V22, P430
  • [3] Andrews Tim, 1992, DATA MANAG 91 DM91
  • [4] Let's Talk About Storage & Recovery Methods for Non-Volatile Memory Database Systems
    Arulraj, Joy
    Pavlo, Andrew
    Dulloor, Subramanya R.
    [J]. SIGMOD'15: PROCEEDINGS OF THE 2015 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, 2015, : 707 - 722
  • [5] Atkinson M., 1995, VLDB J, V4, P319, DOI DOI 10.1007/BF01231642
  • [6] AN APPROACH TO PERSISTENT PROGRAMMING
    ATKINSON, MP
    BAILEY, PJ
    CHISHOLM, KJ
    COCKSHOTT, PW
    MORRISON, R
    [J]. COMPUTER JOURNAL, 1983, 26 (04) : 360 - 366
  • [7] Bailey Katelin A., 2013, P 1 WORKSHOP INTERAC, DOI [10.1145/2527792.2527799, DOI 10.1145/2527792.2527799]
  • [8] MULTICS VIRTUAL MEMORY - CONCEPTS AND DESIGN
    BENSOUSSAN, A
    CLINGEN, CT
    DALEY, RC
    [J]. COMMUNICATIONS OF THE ACM, 1972, 15 (05) : 308 - +
  • [9] Makalu: Fast Recoverable Allocation of Non-volatile Memory
    Bhandari, Kumud
    Chakrabarti, Dhruva R.
    Boehm, Hans-J.
    [J]. ACM SIGPLAN NOTICES, 2016, 51 (10) : 677 - 694
  • [10] Chakrabarti DR, 2014, ACM SIGPLAN NOTICES, V49, P433, DOI [10.1145/2714064.2660224, 10.1145/2660193.2660224]