NVMOVE: Helping Programmers Move to Byte-Based Persistence


Himanshu Chauhan, The University of Texas at Austin; Irina Calciu, VMware; Vijay Chidambaram, The University of Texas at Austin; Eric Schkufza, VMware; Onur Mutlu, ETH Zurich; Pratap Subrahmanyam, VMware


Programmers can utilize the upcoming non-volatile memory (NVM) technology in various ways. One appealing way is to directly store critical application data structures in NVM instead of serializing them to block-storage. Changing legacy code to achieve this, however, is laborious and prone to bugs. We present NVMOVE, a tool that simplifies this transition by analyzing the source code and automatically identifying persistent types, types that are serialized and persisted. Aided by this tool, programmers can modify their applications to allocate such persistent types on the non-volatilememory heap. Upon analyzing Redis, a key-value store with 122 struct types, NVMOVE identifies 25 types as persistent, with no false negatives and 11 false positives. We evaluate the benefits of NVMOVE by moving the identified persistent types in Redis onto a non-volatile memory heap. Redis modified in this manner offers full persistence of data, and performs within 78% of Redis with no persistence, achieving more than 2x the performance of Redis that performs logging on SSDs.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

@inproceedings {200124,
author = {Himanshu Chauhan and Irina Calciu and Vijay Chidambaram and Eric Schkufza and Onur Mutlu and Pratap Subrahmanyam},
title = {{NVMOVE}: Helping Programmers Move to {Byte-Based} Persistence},
booktitle = {4th Workshop on Interactions of NVM/Flash with Operating Systems and Workloads (INFLOW 16)},
year = {2016},
address = {Savannah, GA},
url = {https://www.usenix.org/conference/inflow16/workshop-program/presentation/chauhan},
publisher = {USENIX Association},
month = nov