Originally posted by F.Ultra
View Post
Regardless of the approach, it need to issue one syscall for each I/O request (it can group write/read on same fd with preadv/pwritev) one-by-one, while with io-uring it can issue I/O requests without any syscall and these I/O requests can interleave however they like.
The kernel also has access to the underlying I/O interface, which is already fully async.
There's also been effort to optimize filesystem usage in io-uring, and I think xfs is already optimized for io-uring.
So I think io-uring is 100% going to be faster than postgresql's homebrew solution, though in reality, postgresql also does a lot more than I/O, so if for certain area where CPU is the limitation or uses too much locking, there won't be much of an improvement
Comment