Thu 8 Nov 2018 16:15 - 16:37 at Studio 1 - Performance Chair(s): Adam Welc

New non-volatile memory (NVM) technologies allow direct, durable storage of data in an application’s heap. Durable random-access memory can simplify the construction of reliable applications that do not lose data at a system shutdown or power failure. Existing NVM programming frameworks are intended for non-object-oriented native languages such as C and do not gracefully support an object-oriented language such as C++. They lack support for common abstractions — transient fields, function pointers, and virtual methods — which results in error-prone programming practices.

This paper proposes a new NVM language extension and runtime system that supports object-oriented programming and alleviates the programming pitfalls of prior approaches. At the heart of our approach is object reconstruction, which transparently restores a persistent object’s state during process restart. We describe NVMReconstruction, a Clang/LLVM extension and a runtime library, which implements the language extension and object reconstruction that significantly simplifies writing correct programs that exploit byte-addressable persistent memory with these features: (i) transient fields in persistent objects, (ii) support for object-oriented requirements such as type inheritance and virtual functions, (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 upgrading an application, even if the size of an object increases, by enabling object migration. NVMReconstruction also performs compaction to reduce fragmentation of the persistent heap. Experiments demonstrate the versatility of object reconstruction and its low runtime performance cost.

Thu 8 Nov

splash-2018-OOPSLA
15:30 - 17:00: OOPSLA - Performance at Studio 1
Chair(s): Adam WelcUber Technologies
splash-2018-OOPSLA15:30 - 15:52
Talk
DOI Media Attached
splash-2018-OOPSLA15:52 - 16:15
Talk
Sebastian BurckhardtMicrosoft Research, Tim CoppietersVrije Universiteit Brussel, Belgium
splash-2018-OOPSLA16:15 - 16:37
Talk
Nachshon CohenEPFL, Switzerland, David T. AksunEPFL, James LarusEPFL
splash-2018-OOPSLA16:37 - 17:00
Talk
Will DietzUniversity of Illinois at Urbana-Champaign, Vikram AdveUniversity of Illinois at Urbana-Champaign
Link to publication DOI Pre-print