Memristor, phase-change memory, and other emerging non-volatile memory (NVM) technologies will provide disk-like persistence but at DRAM-like latency. These NVM devices will allow applications to directly manipulate data via memory instructions, thus blurring the distinction between in-memory versus on-disk representations. How should developers write programs to benefit from non-volatile memory, and improve application performance? This tutorial will introduce participants to expected features in NVM devices, the research challenges associated with programming non-volatile memory, and survey software based solutions. We will cover issues related to the presence of volatile caches, consistency of persistent data, and the associated overheads. We will briefly review prior research on persistent programming such as persistent programming languages and orthogonal persistence, and then describe recent advances such as durable transactions and persistence for lock-based programs.
Mon 13 Jun
|09:00 - 10:00|