NapFS: A High-Performance PM File System for NUMA Architectures
-
Abstract
Persistent memory (PM) enables file systems to directly persist data on the memory bus. To expand the
capacity of PM file system, building a file system across sockets with each attached PM is attractive. However, accessing
data across sockets incurs impacts of non-uniform memory access (NUMA) architecture, which can degrade PM file system
performance. In this paper, we first conduct experiments to understand the NUMA impacts on building PM file systems.
We then propose four design principles for building a high-performance PM file system NapFS for NUMA architectures.
We architect NapFS with per-socket local PM file systems and per-socket dedicated IO thread pools. This not only allows
applications to delegate data access to IO threads for avoiding remote PM access, but also fully reuses existing single-socket
PM file systems to reduce implementation complexity. In addition, NapFS utilizes fast DRAM to accelerate performance
by adding a global cache and adopts a selective cache to eliminate the redundant overhead of double-copying for data
synchronization operations. Lastly, we show NapFS can easily adopt extended optimizations to improve scalability and IO
performance of critical requests. We evaluate NapFS against other multi-socket PM file systems. The evaluation results
show that NapFS achieves by 2.2× and 1.0× throughput improvement for Filebench and RocksDB respectively.
-
-