MessageCache: Avoid 'contributions' replicas

On WMF wikis, the partitioning of the revision table on the
'contributions' replicas makes the query here perform really poorly.
Specify 'api' as a hack for now to avoid those replicas.

This query happens once per day per wiki, plus when someone edits the
MediaWiki namespace, so it shouldn't be much additional load.

Bug: T164666
Change-Id: I5ae74d1702144f6475e9cfb13effc43389d66233
This commit is contained in:
Brad Jorsch 2017-05-08 14:00:26 -04:00
parent f0a80ea778
commit 6efee6f0db

View file

@ -464,7 +464,11 @@ class MessageCache {
protected function loadFromDB( $code, $mode = null ) {
global $wgMaxMsgCacheEntrySize, $wgLanguageCode, $wgAdaptiveMessageCache;
$dbr = wfGetDB( ( $mode == self::FOR_UPDATE ) ? DB_MASTER : DB_REPLICA );
// (T164666) The query here performs really poorly on WMF's
// contributions replicas. We don't have a way to say "any group except
// contributions", so for the moment let's specify 'api'.
// @todo: Get rid of this hack.
$dbr = wfGetDB( ( $mode == self::FOR_UPDATE ) ? DB_MASTER : DB_REPLICA, 'api' );
$cache = [];