Similar to LinuxAIOHandler a new UringAIOHandler class inside os0file.cc must be implemented.
Environment
None
Attachments
2
Smart Checklist
Activity
Show:
Julia Vural March 4, 2025 at 9:09 PM
It appears that this issue is no longer being worked on, so we are closing it for housekeeping purposes. If you believe the issue still exists, please open a new ticket after confirming it's present in the latest release.
Dmitry Lenev April 26, 2023 at 7:37 PM
And here are flamegraphs collected by perf during benchmarking:
AIO case (304 connections):
URING case (304 connections no SQPOLL, no ATTACHWQ):
Benchmarks (Sysbench OLTP_RW and OLTP_RW-without-range-selects) were performed on a server-class machine with a fast SSD.
Unfortunately these changes have not shown any performance gains (greater than margin of error). Moreover using uring with certain non-default flags (creating SQ polling thread for each uring instance) resulted in worse performance.
Taking into account the above and the fact that uring is still has different level of support on different kernels we (so it can't fully replace AIO variant at the moment) we have decided to put this project on hold after discussion with .
Linux Kernel 5.1 introduced a new very promising IO interface called io_uring.
https://kernel.dk/io_uring.pdf
https://blogs.oracle.com/linux/post/an-introduction-to-the-io-uring-asynchronous-io-framework
InnoDB can potentially benefit a lot from utilizing this new interface in comparison to existing Native AIO.
Similar to LinuxAIOHandler a new UringAIOHandler class inside os0file.cc must be implemented.