High-Performance DBMSs with io_uring: When and How to use it
Matthias Jasny, Muhammad El-Hindi, Tobias Ziegler, Viktor Leis, Carsten Binnig

TL;DR
This paper investigates how to effectively leverage Linux's io_uring interface in modern database systems, providing guidelines and demonstrating performance improvements through practical case studies and detailed analysis.
Contribution
It offers a comprehensive analysis of io_uring's benefits and limitations in database I/O, along with practical guidelines for optimal integration and a case study on PostgreSQL.
Findings
io_uring can significantly improve I/O performance when used with proper optimizations
Advanced features like registered buffers enhance throughput in specific workloads
Applying guidelines to PostgreSQL yields a 14% performance boost
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsCloud Computing and Resource Management · Advanced Data Storage Technologies · Software System Performance and Reliability
