Bug #78790 Document the difference between native aio and background threads for InnoDB
Submitted: 9 Oct 2015 17:48 Modified: 8 Mar 2017 22:34
Reporter: Mark Callaghan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.6.26 OS:Any
Assigned to: CPU Architecture:Any

[9 Oct 2015 17:48] Mark Callaghan
Description:
Before InnoDB had the option to use native IO, the number of background threads were the limit to concurrent background IO requests. innodb_write_io_threads and innodb_read_io_threads limited the number of concurrent writes & reads done in the background. I don't think that is the case when native aio is used, well there is a limit but it is much larger. One of the much larger limits might be the per-thread array size. But if that is 256 and you set innodb_write_io_threads to 1 then you can still get 256 concurrent background writes and that is a lot.

It might not be good for disk read response time to intermittently submit 256 or 500 writes down to the IO scheduler.

Regardless, the docs don't have much today to explain this.

How to repeat:
read the docs, read fil0fil.cc, look at iostat avgqu-sz during write-intensive workloads

Suggested fix:
Update the docs to explain how to limit concurrent background IO requests when native aio is used.

http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_write_io_threa...

http://dev.mysql.com/doc/refman/5.7/en/innodb-performance-multiple_io_threads.html

http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
[9 Oct 2015 19:48] MySQL Verification Team
Thank you for the bug report.
[7 Mar 2017 19:57] Daniel Price
Posted by developer:
 
This blog post was published when the native AIO feature was introduced:

https://blogs.oracle.com/mysqlinnodb/entry/innodb_now_supports_native_aio
[8 Mar 2017 22:34] Daniel Price
Posted by developer:
 
The following documentation was added:
https://dev.mysql.com/doc/refman/5.7/en/innodb-linux-native-aio.html

Thank you for the bug report.