Building Databases for Non-Volatile Memories

Useful storage systems must make strong consistency guarantees about the data they store, and providing those guarantees can cripple storage system performance. This is especially true for the next-generation storage systems that we build in the NVSL.

We are redesigning database and NoSQL systems to take full advantage of next-generation non-volatile memories. We have developed novel programming models for dealing with persistent state in programs, and we are re-engineering SSDs and memory hierarchies to support and accelerate them.

Results

System Stack
Linked List Update
The NV-Heaps system stack allows read and write operations to bypass the OS entirely. Accessing a linked list in a NV-Heap involves both volatile and non-volatile pointers. Objects are logged for safety and concurrency.

Performance Comparison
Cost of Safety
NV-Heaps see a large performance advantage relative to Stasis and Berkeley DB running on disk and in memory (ramdisk). NV-Heaps is 8X faster than Berkeley DB running on a ramdisk and 7X slower than an unsafe version (no garbage collection, pointer safety, or transactions).

Publications