Due to the expected near DRAM performance, popular async I/O systems are disabled on local persistent memory (PM) file systems, which instead use the pseudo-async I/O path (namely the sync one), to serve async I/O (AIO) requests of applications. This paper first identifies the performance shortcomings of this kind of I/O method and argues the necessity of applying the real async I/O on PM device. Then, this paper proposes PM-AIO, a general method to create an effective async I/O path on PM file systems. PM-AIO leverages kernel-level threads to achieve real asynchronism and concurrency. We implement PM-AIO in the Native-AIO of PMFS and NOVA respectively. Extensive experiments are conducted to verify the advantages of PM-AIO on a real PM platform. Compared with the original I/O methods of PM file systems, the results show that PM-AIO can reduce the latencies of AIO requests up to 3 orders of magnitude while reaping up to 2.11× IOPS in realistic workloads which contain relatively large I/O operations (often <inline-formula><tex-math notation="LaTeX">$\geq$</tex-math></inline-formula> 4 KB). Meanwhile, PM-AIO incurs up to 4% overhead when handling small I/O operations (often <inline-formula><tex-math notation="LaTeX">$<$</tex-math></inline-formula> 4 KB) because of the inherent overhead.
Read full abstract