Nginx - Google Summer of Code ideas

Maxim Dounin mdounin at
Fri Mar 13 14:43:44 MSK 2009


On Thu, Mar 12, 2009 at 06:40:13PM -0700, Merlin wrote:

> On Thu, Mar 12, 2009 at 4:51 PM, Michael Baudino <
> michael.baudino at> wrote:
> > Hi C.
> >
> > Participating in the SoC is a definitively good idea.
> >
> > What about implementing async disk IO ?
> >
> > --
> > Michael Baudino
> >
> >
> >
> What's wrong with aio_write() and aio_read()?

Well, you really want to hear?  There is a couple of issues:

1. There is no good standard method of notification.  Per POSIX 
it's uses signals to notify process about completed operations.  
Under FreeBSD notifications is possible over kqueue, and probably 
other OSes have something too, but it's anyway will require some 
non-trivial porting.

2. It's usually implemented as a thread pool within OS kernel (at 
least FreeBSD and Linux implementations AFAIK), and usually have 
some limits administrator should be aware of (including maximum 
number of io requests system may queue).

3. It's not (yet) supported by nginx.

Personally I think that AIO interface is wierd and it would be 
much better to support O_NONBLOCK on normal file descriptors.  But 
it's not likely to happen in the near future. :)

So currently AIO is the only disk async IO interface we have, and 
it would be good thing to implement it's support in nginx.

Maxim Dounin

More information about the nginx mailing list