Use MySqlConnector for async I/O
The Xtensive.Sql.Drivers.MySql.Connection code uses ExecuteNonQueryAsync. It's a long-standing bug in MySql.Data (bug 70111) that async I/O is not implemented correctly; thus all these methods will actually run synchronously. (See also here and here on Stack Overflow.)
To fix this, you could switch to https://github.com/mysql-net/MySqlConnector, an OSS replacement for MySql.Data that supports true asynchronous I/O.
If you're interested in this, I'd be happy to open a PR.
Hello bgrainger,
We need to think of it and of course weight side-effects of having non-official connector.
What are supported versions of MySQL? Maybe some were excluded from support list? We have pretty old versions of MySQL in supported list, and I didn't see list of supported versions on the page of the repository so I have to ask about that.
In case we agreed to use your connector, we would really appreciate your help with connector replacement. I'm pretty sure it won't be hard to replace the current one.
MySqlConnector supports MySQL 5.5 and above (although only 5.6 is regularly tested by integration tests). That's a good suggestion to add it to the documentation.
There's been a request to add support for 5.0 (https://github.com/mysql-net/MySqlConnector/issues/1126) but the lack of prebuilt Docker images for that version makes testing it more challenging.