[wg-parallel] About Lwt and Async

Jeremie Dimino jdimino at janestreet.com
Mon Apr 29 16:48:39 BST 2013


On Mon, Apr 29, 2013 at 4:34 PM, Anil Madhavapeddy <anil at recoil.org> wrote:
> Right... and at the block level and not the filesystem level.  Many
> modern operating systems do expose an async block interface that isn't
> POSIX that would be better to bind against than POSIX AIO, such as
> libaio on Linux.

Yeah, I did a few experiments with that.  We could bind to libaio but
definitely not make it the default.  It requires O_DIRECT which
destroys performances when data are already cached by the kernel.
Also it transparently default to synchronous IO when AIO is not
supported by the filesystem and there is no way to detect it.

So it could be a third-party library for specific use but cannot
replace the generic disk IO interface.

> All of this makes me worry that we're entering a mire of cross-platform
> issues as Async goes more open.  libuv [3], for example, takes care of
> many of these async-IO issues, and has a large userbase thanks to our
> Javascript-loving friends at Nodejs.  I wonder if a good intern project
> would be to bind libuv to Async and test its performance profile vs
> the current tree...

Interesting.  I think it would be worth trying.


More information about the wg-parallel mailing list