The objective of the project is to improve the Linux kernel by allowing it to store data in fast persistent byte-addressable memory.
The Linux kernel has been designed with the idea that persistent storage is slow, has high latency, and can only be accessed asynchronously (i.e., by sending a request to a disk that will only answer at a later point in time). As a consequence, the Linux kernel avoids using persistent storage as much as possible and keeps most of its state in DRAM. Many subsystems of the kernel, such as the page cache or the swap mechanism, are fundamentally designed for slow drives, delaying accesses to the disk as much as possible. These subsystems are currently unable to leverage the speed and low latency of modern persistent byte-addressable memory (PMEM) -- unlike traditional disks, PMEM can read and write data at GB speed and persist data with sub-microsecond latency.
The goal of the project is to rethink the relationship between the Linux kernel and storage. The project will start with an analysis of the page cache. The page cache can be easily modified to leverage persistent memory by avoiding the need to flush dirty data to disk. We expect this change to provide an important speedup for applications that sync data to disk frequently (e.g., databases).
Requirements: fluent C programming, ability to navigate in a large codebase (Linux kernel).
Scholarships value and duration: $35.5k for 3.5 years
Dr Baptiste Lepers - [Email Address Removed]