Hey all,
Over the past months our main MediaWiki PHPUnit run slowed down a lot. Some of that is
attributed to our unit tests using too much database integration [1]. Another significant
portion is attributed to the switch to MySQL. The overhead was especially significant for
Precise instances and PHP Zend.
While MySQL is heavier than SQLite, it generally does perform better at scale, caching,
and with concurrent requests from the web. However we lost a lot compared to SQLite
because our SQLite wasn't on disk but in a tmpfs mount.
Last week we worked on adding a tmpfs mount to our Jenkins slaves and configuring MySQL to
store its data there instead.
Our average build time went from 20 minutes (zend) and 8 minutes (hhvm) to 9 minutes and 4
minutes!
For the impact on the average build time trend graphs, see
https://phabricator.wikimedia.org/T96230#1215473
<https://phabricator.wikimedia.org/T96230#1215473>
There's still room for more optimisations, which are tracked at
https://phabricator.wikimedia.org/T96249
<https://phabricator.wikimedia.org/T96249>.
— Krinkle
[1]
https://phabricator.wikimedia.org/T93556
<https://phabricator.wikimedia.org/T93556>