USENIX 2004 Annual Technical Conference, General Track Abstract
Pp. 241254 of the Proceedings
Lazy Asynchronous I/O for Event-Driven Servers
Khaled Elmeleegy, Anupam Chanda, and Alan L. Cox, Rice University; Willy Zwaenepoel, EPFL, Lausanne
We introduce Lazy Asynchronous I/O (LAIO), a new asynchronous
I/O interface that is well suited to event-driven programming. LAIO is general
in the sense that it applies to all blocking I/O operations. Furthermore,
it is lazy in the sense that it creates a continuation only when
an operation actually blocks, and it notifies the application only when a
blocked operation completes in its entirety. These features make programming
high-performance, event-driven servers using LAIO considerably easier than
with previous interfaces.
We describe a user-level implementation of LAIO, relying only on kernel
support for scheduler activations, a facility present in many Unix-like systems.
We compare the performance of web servers implemented using LAIO to the
performance obtained with previous interfaces. For workloads with an appreciable
amount of disk I/O, LAIO performs substantially better than the alternatives,
because it avoids blocking entirely. In one such case, the peak throughput
with LAIO is 24% higher than the next best alternative. For in-memory workloads
it performs comparably.
- View the full text of this paper in HTML and PDF.
The Proceedings are published as a collective work, © 2004 by the USENIX Association. All Rights Reserved. Rights to individual papers remain with the author or the author's employer. Permission is granted for the noncommercial reproduction of the complete work for educational or research purposes. USENIX acknowledges all trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.