Oracle Internals Notes

Threaded Asynchronous I/O

Because kernelized asynchronous I/O is only available for raw devices and Quick I/O files, some operating systems provide an alternative code path in their implementation of the aio_read() and aio_write() system calls that can be used to simulate asynchronous I/O on ordinary file system based files. For every concurrent threaded asynchronous I/O operation, a light-weight process is allocated or spawned to perform an ordinary synchronous (blocking) I/O operation. This achieves I/O parallelism at the expense of additional CPU usage associated with thread creation and extra context switching overheads. If threaded asynchronous I/O is used very intensively, these costs can add as much as 5% to system CPU usage.

The cost of threaded asynchronous I/O is such that it is only beneficial if an application program is not able to use multiple processes to simulate asynchronous I/O, as for example Oracle's database writer can do.

The following operating systems support threaded asynchronous I/O: Solaris, AIX, Windows NT/2000, Linux, Irix, Tru64 Unix ...
The following operating systems do not support threaded asynchronous I/O: HP-UX, Reliant Unix, ...

If your operating system is not listed above, please click on the feedback icon below and send us an email so that we can add it to the correct list.


Ixora Pty Ltd.   All rights reserved.
12-Oct-2007 22:22
Search   Questions   Feedback   Up   Home