High-Performance DBMSs with io_uring: When and How to use it

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Jasny, Matthias, El-Hindi, Muhammad, Ziegler, Tobias, Leis, Viktor, Binnig, Carsten
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866918245367283712
author Jasny, Matthias
El-Hindi, Muhammad
Ziegler, Tobias
Leis, Viktor
Binnig, Carsten
author_facet Jasny, Matthias
El-Hindi, Muhammad
Ziegler, Tobias
Leis, Viktor
Binnig, Carsten
contents 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%.
format Preprint
id arxiv_https___arxiv_org_abs_2512_04859
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle High-Performance DBMSs with io_uring: When and How to use it
Jasny, Matthias
El-Hindi, Muhammad
Ziegler, Tobias
Leis, Viktor
Binnig, Carsten
Databases
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%.
title High-Performance DBMSs with io_uring: When and How to use it
topic Databases
url https://arxiv.org/abs/2512.04859