NVMeDirect: A User space I/O Framework for Application specific Optimization on NVMe SSDs
The performance of storage devices has been increased significantly due to emerging technologies such as Solid State Drives (SSDs) and Non Volatile Memory Express (NVMe) interface. However, the complex I/O stack of the kernel impedes utilizing the full performance of NVMe SSDs. The application specific optimization is also difficult on the kernel because the kernel should provide generality and fairness. In this paper, we propose a user level I/O framework which improves the performance by allowing user applications to access commercial NVMe SSDs directly without any hardware modification. Moreover, the proposed framework provides flexibility where user applications can select their own I/O policies including I/O completion method, caching, and I/O scheduling. Our evaluation results show that the proposed framework outperforms the kernel based I/O by up to 30% on microbenchmarks and by up to 15% on Redis.
HotStorage