VoliMem: Leveraging a userland page table towards transparent usage of persistent memory
Team work: Jana Toljaga presented "VoliMem: Leveraging a userland page table towards transparent usage of persistent memory" (Compas'24) at 4A312 the 31/5/2024 at 10h30.
Abstract
Over the last decades, memory technology has undergone significant evolution, resulting in the creation of failure-resilient persistent memory (PMEM). Due to its page-cache bypassing and byte-addressability, PMEM offers the durability of SSD with a speed approaching those of modern RAM. However, hardware support alone is insufficient as processor caches remain volatile, which results in data inconsistency in case of failure. For that reason, using PMEM also requires code instrumentation to log memory accesses. Currently, it is necessary to manually instrument the code, which is error-prone and adds additional burden on developers.
This paper proposes VoliMem, a user-space runtime that relies on virtualization to provide transparent persistent memory environment for application developers. Namely, VoliMem creates a virtualized process-like abstraction capable of accessing a page table directly in userland. The userland page table is therefore our tool to implement transparent logging using two possible techniques. The first one consists of intercepting wites by removing write access permission to the pages. The second one leverages the dirty bit set by the hardware each time when a page is modified.