Our investigation on the design and performance trade off of among Linux storage APIs (libaio, SPDK, and io_uring) is accepted at the 15th ACM International Systems and Storage Conference (SYSTOR’22), https://www.systor.org/2022/accepted-papers/.
Title: Understanding Modern Storage APIs: A systematic study of libaio, SPDK, and io_uring
Authors: Diego Didona, Jonas Pfefferle, Nikolas Ioannou, Bernard Metzler (IBM Research Zurich); Animesh Trivedi (VU Amsterdam)
Abstract: Recent high-performance storage devices have exposed software inefficiencies in existing storage stacks, leading to a new breed of I/O stacks.The newest storage API of the Linux kernel is io_uring. We perform one of the first in-depth studies of io_uring, and compare its performance and dis/advantages with the established libaio and SPDK APIs. Our key findings reveal that (i) polling design significantly impacts performance; (ii) with enough CPU cores io_uring can deliver performance close to that of SPDK; and (iii) performance scalability over multiple CPU cores and devices requires careful consideration and necessitates a hybrid approach. Last, we provide design guidelines for developers of storage intensive applications.