Asynchronous IO (AIO) allows a process to continue to do other work while an IO operation initiated earlier completes. AIO allows a large number of random IO operations to be issued at once, allowing the disk subsystem to order access to data on disk, reducing average seek times considerably, as well as allowing much better utilization of disks in a multi-disk RAID environments where reads can be done in parallel across disks. In this paper we address the issue of how to extend a database query execution engine to exploit asynchronous IO. To best exploit AIO, we propose a new iterator model called the Asynchronous Iterator Model, where a getnext() call on an operator can return a status LATER instead of blocking on an IO, permitting other actions to be initiated while an IO is pending. We show how to modify the implementation of Index Nested Loop (INL) join by issuing asynchronous requests to a batch of tuple ids. We have prototyped the asynchronous iterator model for INL joins on the...
Suresh Iyengar, S. Sudarshan, Santosh Kumar 0002,