Introduction to ORACLE Database asynchronous IO, oracle asynchronous io
Asynchronous IO Concept
Linux asynchronous I/O (AIO) is an enhanced function provided by the Linux kernel. It is a standard feature of the Linux 2.6 kernel. Of course we can find it in the patch of the 2.4 kernel. The basic idea behind AIO is to allow a process to initiate many I/O operations without blocking or waiting for any operation to complete. The process can retrieve the results of an I/O operation later or when it receives a notification that the I/O operation is complete.
Linux I/O models (synchronous I/O models) and asynchronous models ). In synchronous I/O, the thread starts an I/O operation and immediately enters the waiting state. It does not wake up until the I/O operation is complete and continues. In asynchronous IO mode, the thread sends an IO request to the kernel and continues to process other tasks. After the kernel completes the IO request, it will notify the thread that the IO operation is completed.
If I/O requests require a large amount of time for execution, the asynchronous file I/O method can significantly improve the efficiency, because during the waiting period, the CPU will schedule other threads for execution, if no other thread needs to be executed, this time will be wasted (the operating system's zero-page thread may be scheduled ). If I/O requests are operated quickly, asynchronous I/O is still inefficient. It is better to use synchronous I/O.
For other details about asynchronous IO and synchronous IO, refer to the Boost application performance using asynchronous I/O article. Many articles about "Linux asynchronous IO" on the Internet are actually translated from this article. If you know