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.