General-purpose Programming Techniques for Emerging Systems with Non-volatile Byte-addressable Random Access Memory

Date
2018-07-20
Journal Title
Journal ISSN
Volume Title
Publisher
Description
Abstract

Emerging byte-addressable non-volatile random access memory (NVRAM) technologies allow persistent data to be accessed and manipulated using CPU load and store instructions. The persistent data in NVRAM can be persisted in the same format as it is manipulated and re-used across execution cycles. In order to achieve this persist-reuse programming idiom, persistent data need to be kept consistent across restarts and tolerated failures, i.e. certain data invariants need to be maintained. As persistent data may be cached in volatile structures such as CPU cache and memory instructions may be reordered, failures or power cycle could violate these invariants and leave persistent data in an inconsistent state. This thesis work explores general-purpose software techniques that minimize the burden on programmers to maintain persistent data consistency under this persist-reuse model. It further focuses on persistent memory management techniques to simplify NVRAM programming. In this aspect, this thesis work identifies and addresses challenges associated with designing a failure-safe and leak-free persistent memory allocator that is also interoperable with various persistent programming libraries. Additionally, it presents software techniques to minimize de-/allocation overhead, avoid persistent leaks, and discusses a memory allocator design approach that enhances the programmability of NVRAM programming libraries. This thesis work shows that these software techniques can enable the failure-safe use of NVRAM without placing an undue burden on programmers or incurring significant performance overheads.

Description
Degree
Doctor of Philosophy
Type
Thesis
Keywords
NVRAM, persistence, programming, memory allocation, garbage collection
Citation

Bhandari, Kumud. "General-purpose Programming Techniques for Emerging Systems with Non-volatile Byte-addressable Random Access Memory." (2018) Diss., Rice University. https://hdl.handle.net/1911/105656.

Has part(s)
Forms part of
Published Version
Rights
Copyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.
Link to license
Citable link to this page