Facebook's Fred Emmott works on benchmarking HHVM's performance when running various open-source PHP frameworks. This puts him in contact with MediaWiki's codebase. He wrote in to suggest that we experiment with using plain PHP files instead of CDB for the l10n cache. We should try that and see whether it improves performance.
-------
Deployment plan, as recycled from 2015 (T99740#5165753 by @Krinkle):
# {icon square-o} Enable `array` format on testwiki on Beta Cluster. (We used test2wiki in 2015, but I recommend we use testwiki this time, so that Beta Cluster gets it as well) – Similar to 7237148affb4 / <https://gerrit.wikimedia.org/r/217702>.
# {icon square-o} Have Scap include `testwiki` as extra element in its loop over "pick a wiki per wiki version" for its invoking of `_call_rebuildLocalisationCache`. See also T105683, and <https://gerrit.wikimedia.org/r/#/c/mediawiki/tools/scap/+/224520/5/scap/tasks.py> for related changes that might be needed.
# {icon square-o} Confirm it works in Beta Cluster.
# {icon square-o} Enable `array` format for all wikis in Beta, except testwiki (inverse of before), and run that for a week or two to confirm there's no major issues with HHVM (or PHP 7).
# {icon square-o} Enable `array` format for testwiki in production.
# {icon square-o} (Temporary) Add magic switch to wmf-config to use `array` on any wiki, if and only if the array cache file is locally found. This is for during the transition. See also c9ff83c234f53 / <https://gerrit.wikimedia.org/r/224562>.
# {icon square-o} Enable `array` for all wikis.
# {icon square-o} Remove temporary switch.
# {icon square-o} Remove extra element from Scap loop for `rebuildLocalisationCache`.