-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
io_uring is a new method to perform efficient I/O on Linux systems. It provides a completion model (rather than a readiness model), similar to what IOCP on Windows provides, and unlike the standard poll-like interfaces, it can be used to request I/O from regular files as well (and, unlike the old/broken AIO in Linux, it doesn't require files to be opened in O_DIRECT mode).
It is a recent development, but reports of it being used by servers are very promising, often yielding gains exceeding 2 or 4x in throughput. Here's a talk by its main author with details, including benchmarks.
In addition to I/O (read/write/poll), it's also possible to handle connections (accept/connect) and a bunch of other things.
It should be possible to enable this and have both io_uring and epoll (as a fallback) in pal_networking.