Bug #74349 Simplify the logic to choose native aio on windows
Submitted: 13 Oct 2014 8:57 Modified: 17 Oct 2014 19:18
Reporter: Naga Satyanarayana Bodapati Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:5.7 OS:Any
Assigned to: CPU Architecture:Any

[13 Oct 2014 8:57] Naga Satyanarayana Bodapati
Description:
Currently we have the below logic to choose native aio on windows in srv0start.cc
The below logic could be simplified because all the windows platforms supported
by windows for 5.7 will support native aio.
 

ifdef _WIN32
        switch (os_get_os_version()) {
        case OS_WIN95:
        case OS_WIN31:
        case OS_WINNT:
                /* On Win 95, 98, ME, Win32 subsystem for Windows 3.1,
                and NT use simulated aio. In NT Windows provides async i/o,
                but when run in conjunction with InnoDB Hot Backup, it seemed
                to corrupt the data files. */

                srv_use_native_aio = FALSE;
                break;

        case OS_WIN2000:
        case OS_WINXP:
                /* On 2000 and XP, async IO is available. */
                srv_use_native_aio = TRUE;
                break;

        default:
                /* Vista and later have both async IO and condition variables */
                srv_use_native_aio = TRUE;
                srv_use_native_conditions = true;
                break;

How to repeat:
Read code

Suggested fix:
Simplify the native aio logic on windows.
[17 Oct 2014 19:18] Daniel Price
Posted by developer:
 
Fixed as of the upcoming 5.7.6 release, and here's the changelog entry:

The logic used to select native AIO on Windows has been simplified. All
Windows versions supported by MySQL 5.7 now support native AIO. The logic
required to handle older Windows versions that do not support native AIO
was no longer necessary.