Bug #107421 Support io_uring
Submitted: 28 May 2022 10:03 Modified: 30 May 2022 9:43
Reporter: He Haochen Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S4 (Feature request)
Version:8.0 OS:Any
Assigned to: CPU Architecture:Any

[28 May 2022 10:03] He Haochen
Description:
Currently, MySQL supports two kinds of IOs: synchronized IO and Linux libaio (async).
To ensure consistency, fsync should be issued frequently, this may make asynchronized
IO fall back to synchronized IO. As I benchmark them here:

https://ibb.co/59NQxqM

Comparing the blue (asynchronized IO) and green (synchronized IO) lines, we can not
see significant improvement. But asynchronized IO should be much more faster especially
in NVMe SSD (with 65536 queues each 65536 indepth). I expected much better performance
for these new devices. Recently, PostgreSQL has already planned to implement IO_uring
interface (http://anarazel.de/talks/2020-01-31-fosdem-aio/aio.pdf).

Shall MySQL take supporting io_uring into consideration?

Thanks & best,
Haochen

How to repeat:
None
[28 May 2022 10:29] He Haochen
Currently, MySQL supports two kinds of IOs: synchronized IO and Linux libaio (async).
To ensure consistency, fsync should be issued frequently, this may make asynchronized
IO fall back to synchronized IO. As I benchmark them here:

https://ibb.co/59NQxqM

Comparing the blue (asynchronized IO) and green (synchronized IO) lines, we can not
see significant improvement. But asynchronized IO should be much more faster especially
in NVMe SSD (with 65536 queues each 65536 indepth). I expected much better performance
for these new devices. Recently, PostgreSQL has already planned to implement IO_uring
interface (http://anarazel.de/talks/2020-01-31-fosdem-aio/aio.pdf).

Many benchmarking results have shown io_uring can reach the theoretical limit of the
devices(https://thenewstack.io/how-io_uring-and-ebpf-will-revolutionize-programming-in-linux/)
Shall MySQL take supporting io_uring into consideration?

Thanks & best,
Haochen
[30 May 2022 9:43] MySQL Verification Team
Hello He Haochen,

Thank you for the feature request!

regards,
Umesh