Lazy Asynchronous I/O for Event-Driven Servers
In this paper , we introduce Lazy Asynchronous I/O (LAIO),a new API for performing I/O that is well-suited but not limited to the needs of high-performance, event-driven servers. In addition, we describe and evaluate an implementation of LAIO that demonstrably addresses certain critical limitations of the asynchronous and non-blocking I/O support in present Unix-like systems. LAIO is implemented entirely at user-level, without modification to the operating system’s kernel. It utilizes scheduler activations. Using a micro-benchmark, LAIO was shown to be more than 3 times faster than AIO when the data base was already available in memory. It also had a comparable performance to AIO when actual I/O needed to be made. An event driven web server (thttpd) archived more than 38% increase in its throughput using LAIO. The Flash web server’s throughput, originally archived with kernel modification, was matched using LAIO without making kernel modification.
usenix2004.pdf
openaccess
262.1 KB
Adobe PDF
439cdfd8bb29a784be7b9ff2ba9856b4