Twizzler: An OS for next-generation memory hierarchies
Intervenant(s) : Darrell Long (UC Santa Cruz)
The introduction of byte-addressable, non-volatile memory (BNVM) allows us to rethink the entire system stack, from processors to applications. Operating systems, too, must evolve to support new I/O models for persistent data access. To this end, we are developing NVPTR, a programming model for BNVM-based systems that provides programs with memory-style access to persistent objects using cross-object pointers, removing the kernel from the access path to persistent data and simplifying BNVM programming. In contrast to I/O models of current operating systems, NVPTR provides a “clean-slate” I/O model for memory-mapped persistent data, realizing the vision of UNIX in a world of persistent RAM.
We have built NVPTR atop FreeBSD (with only a small number of additions), after which we wrote a persistent key-value store and red-black tree to demonstrate and measure the effectiveness and performance of our programming model. Our approach to pointers provides simplicity, extensibility, and improved security over traditional memory-mapped data structure approaches with a low overhead for both intra-object pointers (0.4 ns) and cross-object pointers (2.4–5.8 ns). Reducing kernel involvement provides a 43× speedup for NVPTR operations over the UNIX system calls their functionality replaces. This approach gives our KV-store a single-threaded performance of over 5 million insert and 20 million lookup operations per second.
marc.shapiro (at) nullacm.org