UringCL: A Lightweight io_uring Convergence Layer for Adoption in Legacy Event Loops
Loading...
Date
Authors
Advisor
Martin, Karsten
Journal Title
Journal ISSN
Volume Title
Publisher
University of Waterloo
Abstract
High-performance network servers depend on efficient I/O mechanisms to manage thou-
sands of concurrent connections with minimal latency and overhead. While traditional
readiness-based interfaces (e.g., select, poll, epoll) notify applications when I/O oper-
ations can proceed, they still require synchronous system-calls to execute the operations.
This synchronous requirement causes frequent user–kernel transitions, which limits scala-
bility under heavy load. In contrast, the io uring interface offers a fundamentally different
approach by providing a completion-based I/O model that minimizes system-call overhead
and enables true asynchronous data transfer.
Although the performance benefits of io uring are well established in storage systems,
its integration into high-throughput network applications remains limited. This thesis aims
to bridge this integration gap by making the adoption of io uring accessible and provid-
ing a structured vehicle for evaluating its performance in network-bound environments. To
this end, the io uring Convergence Layer (UringCL) is presented to transparently map
the synchronous I/O calls of readiness-driven applications onto asynchronous io uring
operations. The UringCL simplifies initialization, event handling, and data transfer while
preserving the existing control flow of legacy applications, allowing for incremental migra-
tion toward completion-based I/O without major redesign.
The UringCL architecture facilitates the practical integration of io uring into estab-
lished network architectures and provides a consistent framework for measuring its impact
on throughput, latency, and CPU efficiency. Experimental results demonstrate significant
performance advantages over traditional models. In bulk-transfer workloads, the system
delivers up to 40% higher throughput than epoll due to superior batching capabilities.
In request-response scenarios involving Memcached, the integration achieves higher peak
throughput and maintains significantly lower and more stable tail latency under heavy
load. Furthermore, UringCL achieves these benefits with negligible overhead, proving that
completion-based I/O can be adopted seamlessly to enhance the efficiency of modern net-
work servers.