Publikation
High-Performance DBMSs with io_uring: When and How to Use It
Matthias Jasny; Muhammad El-Hindi; Tobias Ziegler; Viktor Leis; Carsten Binnig
In: Proceedings of the VLDB Endowment (PVLDB), Vol. 19, No. 9, Pages 2317-2330, arXiv, 2026.
Zusammenfassung
We study how modern database systems can leverage the Linux
io_uring interface for efficient, low-overhead I/O. io_uring is an
asynchronous system call batching interface that unifies storage
and network operations, addressing limitations of existing Linux
I/O interfaces. However, naively replacing traditional I/O interfaces
with io_uring does not necessarily yield performance benefits. To
demonstrate when io_uring delivers the greatest benefits and how
to use it effectively in modern database systems, we evaluate it
in two use cases: Integrating io_uring into a storage-bound buffer
manager and using it for high-throughput data shuffling in network-
bound analytical workloads. We further analyze how advanced
io_uring features, such as registered buffers and passthrough I/O,
affect end-to-end performance. Our study shows when low-level
optimizations translate into tangible system-wide gains and how
architectural choices influence these benefits. Building on these
insights, we derive practical guidelines for designing I/O-intensive
systems using io_uring and validate their effectiveness in a case
study of PostgreSQL’s recent io_uring integration, where applying
our guidelines yields a performance improvement of 14%.
