From: Brad Jorsch Date: Mon, 8 May 2017 18:00:26 +0000 (-0400) Subject: MessageCache: Avoid 'contributions' replicas X-Git-Tag: 1.31.0-rc.0~3295^2 X-Git-Url: http://git.cyclocoop.org/data/Fool?a=commitdiff_plain;h=6efee6f0dbe9340badbc973aa5fab8413f35a6a6;p=lhc%2Fweb%2Fwiklou.git 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 --- diff --git a/includes/cache/MessageCache.php b/includes/cache/MessageCache.php index c992112068..8f88ee9e10 100644 --- a/includes/cache/MessageCache.php +++ b/includes/cache/MessageCache.php @@ -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 = [];