Byte-addressable non-volatile main memory (NVRAM) combines the performance benefits of conventional DRAM-based main memory with the durability of secondary storage. Systems where NVRAM co-exists with (or even replaces) traditional volatile main memory have recently become commercially available and are anticipated to become increasingly widespread in the future. Consequently, there is growing interest in recoverable concurrent objects (also called persistent or durable objects) — concurrent objects that leverage state saved in NVRAM for efficient recovery from crash failures.
In this tutorial, we will describe emerging shared-memory models for recoverable objects, as well as algorithms for implementing recoverable versions of mutual-exclusion locks and lock-free concurrent objects.
Presentation Slides and exercises