Page MenuHomePhabricator

Add AWS Aurora MySQL Driver
Open, NormalPublic

Description

I spoke with Tim Starling at WMF Tech 2018 and he recommended that I removed Gamepedia's/Hydra's hacks for Aurora by moving them to a MySQL driver. The only compatibility difference between regular MySQL and Aurora is how it handles getting replication status. The original code has been tested on gamepedia.com for about two months now. This code differs in that it has been split out into its own file. Currently it is being tested in the staging environment. Example wiki: https://meeseeks.gamepedia.io/Meeseeks_Wiki

https://gerrit.wikimedia.org/r/#/c/mediawiki/core/+/470665

Event Timeline

Alexia created this task.Oct 30 2018, 7:36 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptOct 30 2018, 7:36 PM
Alexia updated the task description. (Show Details)Oct 30 2018, 7:38 PM

Change 470665 had a related patch set uploaded (by Alexia; owner: Alexia):
[mediawiki/core@master] Add AWS Aurora MySQL driver to support Aurora replication status.

https://gerrit.wikimedia.org/r/470665

Krinkle added a subscriber: Krinkle.

MediaWiki currently has two db implementations that WMF are volunteer-maintained and not tested in WMF CI (Oracle, Mssql). I do not know if we want to expand that, or whether the idea is to make this possible for an extension to provide.

From talking with Aaron, I believe it is already supported for an extension to provide an IDatabase implementation, and to be able to use it through MediaWiki configuration. However, I don't know if this has been tried before.

daniel added a subscriber: daniel.Apr 17 2019, 8:02 PM

After some discussion in CPT, it seems like this should be done as an extension. Adding more databases to core is probably a bad idea, considering we have a bad track record of maintaining support for the ones we already have. Doing this via an extension is a bit of an experiment - the general case is blocked on T191231: RFC: Abstract schemas and schema changes, but Aurora should be 100% compatible with MySql, so that shouldn't be a problem.

However, we'd have to make sure this wouldn't fail due to hard coded checks for "mysql" or "mysqli" in core. Any such checks would need to be replace with instanceof checks against DatabaseMySQL.

Anomie added a subscriber: Anomie.Apr 18 2019, 3:14 PM
Krinkle triaged this task as Normal priority.Jul 23 2019, 4:57 PM
Restricted Application added a project: Core Platform Team. · View Herald TranscriptJul 23 2019, 4:57 PM