"The good news is that Windows also has a completion based system similar to io_uring but without batching, called IOCP"<p>fwiw IOCP in NT predates the similar mechanisms in Linux by at least a decade (and the VMS QIO scheme upon which it was in turn based is even older). As I understand it the reason Unix(1) (and then Linux) did not have efficient network I/O kernel interfaces until relatively recently was due to fear of patent litigation from MS.<p>(1) except for AIX, possibly due to IBM being less concerned about MS patents in this area.
I just watched your talk at the CMU database talks. Just wanted to say I really appreciate reading/hearing about your approach! TB is a super interesting system, I hope I get to properly use it someday.
Funny. I've implemented something like this as well, but over `poll()`, and I made it handle child processes too.<p>I could probably change it to use io_uring and kqueue on those platforms, but I wanted to make a POSIX-compatible version first.