On Fri, May 1, 2020 at 4:59 PM Thomas Munro <thomas.mu...@gmail.com> wrote:
> On Fri, May 1, 2020 at 12:28 PM Jonah H. Harris <jonah.har...@gmail.com> > wrote: > > Also, this will likely have an issue with O_DIRECT as additional buffer > manager alignment is needed and I haven't tracked it down in 13 yet. As my > default development is on a Mac, I have POSIX AIO only. As such, I can't > natively play with the O_DIRECT or libaio paths to see if they work without > going into Docker or VirtualBox - and I don't care that much right now :) > > Andres is prototyping with io_uring, which supersedes libaio and can > do much more stuff, notably buffered and unbuffered I/O; there's no > point in looking at libaio. I agree that we should definitely support > POSIX AIO, because that gets you macOS, FreeBSD, NetBSD, AIX, HPUX > with one effort (those are the systems that use either kernel threads > or true async I/O down to the driver; Solaris and Linux also provide > POSIX AIO, but it's emulated with user space threads, which probably > wouldn't work well for our multi process design). The third API that > we'd want to support is Windows overlapped I/O with completion ports. > With those three APIs you can hit all systems in our build farm except > Solaris and OpenBSD, so they'd still use synchronous I/O (though we > could do our own emulation with worker processes pretty easily). > Is it public? I saw the presentations, but couldn't find that patch anywhere. -- Jonah H. Harris