Richard Ellerbrock wrote:
> Please don't flame me, as I am asking this question totally ignorant. I just happened
> to stumble on this.
> I have an implementation question concerning user level async IO. Is MySQL capable of
> using user level async IO as defined by the POSIX standard? Reading the Redhat Oracle
> performance FAQ, this is hinted at. User level async IO is available in the RedHat
> Extended Edition Kernel (2.2.16). This kernel also supports Large File Support and Big
> ***cut from the FAQ***
> How is an application tuned to use user level asynch i/o?
> The POSIX-standard aio() asynchronous I/O library allows
> to proceed with the next operation without having to wait
> after issuing a
> write. This results in improved system performance by
> minimizing idle
> time. These routines are built into the current version of
> the C library.
> This library opens I/O and descriptors to almost any sort of
> (files, network sockets, raw devices, etc) and submit
> asynchronous I/O
> requests to the library. The requests are serviced
> independently by a
> set of threads. To understand how to change your
> application to take
> advantage of this features, please refer to url:
> http://www.opengroup.org/publications/catalog/web.htm and
> search for
> the 'Single UNIX Specification, Version 2'. The aio
> functions are
> documented under the "System Interfaces" link.
> The faq is at http://www.redhat.com/devnet/database/oraclefaq.html. User level async
> IO has been discussed on Slashdot as being one of the key elements of the spectacular
> SpecWeb stats obtained with the kernel based httpd daemons.
> You can find the EE kernels in the ./redhat/updates/6.2EE/ directory of your
> favourite RedHat mirror.
> Richard Ellerbrock
> Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
> posting. To request this thread, e-mail internals-thread230@stripped
> To unsubscribe, send a message to the address shown in the
> List-Unsubscribe header of this message. If you cannot see it,
> e-mail internals-unsubscribe@stripped instead.
A small addition to Tim's answer.
When we want to do something async, we put it in another thread. That
way you get both async features plus better control.
____ __ _____ _____ ___ == MySQL AB
/*/\*\/\*\ /*/ \*\ /*/ \*\ |*| Sinisa Milivojevic
/*/ /*/ /*/ \*\_ |*| |*||*| mailto:sinisa@stripped
/*/ /*/ /*/\*\/*/ \*\|*| |*||*| Larnaka, Cyprus
/*/ /*/ /*/\*\_/*/ \*\_/*/ |*|____
/*/ \*\ Developers Team