Databases on NVRAM

New non-volatile random access memory (NVRAM) fills the gap between DRAM and storage devices like SSDs. It functions like conventional main memory with byte-addressability and fast access times but provides persistency and large capacities.

Database applications can greatly benefit from non-volatile memory. Data is directly accessible and therefore does not require expensive (de-)serialization from/to disk. Classically, databases implement mechanisms to ensure data integrity for data stored on disks. NVRAM can be configured as a traditional storage device so existing implementations can deal with it. While this approach ensures data integrity, it does not utilize the full potential because file systems are designed to work with block devices and, therefore, can not take advantage of byte-addressable NVRAM.

Our new memory primitive, called morsel, is an alternative abstraction of physical memory specially designed for NVRAM. It provides crash consistency for its internal management data structures, meaning that the memory object is always in a consistent state even after a system crash, even though it can not give any guarantees for the stored data. Your task would be the adaption of an existing database implementation to use a morsel as an underlying memory provider to extend the data integrity guarantees to the data level.

Topics: parallel programming, memory ordering, C/C++


Primitives and Abstractions for Self-Contained Virtual-Memory Areas in the Linux kernel

Implement the basic abstraction for self-contained virtual-address-space areas in Linux, by which we want to ease the allocation, the sharing, and the management of huge amounts of memory. [PDF]



Lars Wrenger
Florian Rommel
Christian Dietrich
Daniel Lohmann


Alexander Halbuer (abgegeben: 16. Nov 2022)