New, fast non-volatile memories present new and fundamental questions about how programmers should reason about persistent program state. These memories can act like DRAM, and we will soon be able to attach them directly to a processor’s memory bus, leading to unprecedented levels of storage performance.
Almost six years ago we built the first fully-functional programming library for persistent memories — NV-Heaps. Today we are still wrestling with challenges we described and building systems to address them. You can read more about some of the challenges in my posts on the SIGARCH Blog here and here.
Our work on NV-Heaps has spawned and influence other projects, too:
- Our experience with NV-Heaps deeply influenced the design of NOVA, since a NOVA filesystem is, in essence, a large persistent data structure.
- The need to increase reliability of NV-Heaps-like systems inspired Mojim, our distributed NVMM replication system.
If you want to build high-impact systems like these, join our group.
Publications
-
NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System
Proceedings of the 26th International Symposium on Operating Systems Principles (SOSP), 2017. -
NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories
14th USENIX Conference on File and Storage Technologies (FAST 16), 2016. -
Mojim: A Reliable and Highly-Available Non-Volatile Memory System
Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems, 2015. -
NV-Heaps: Making Persistent Objects Fast and Safe With Next-Generation, Non-Volatile Memories
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems, 2011.