« mc.php

code reviewgit-loggit-blameraw text


<?php
# WARNING: This file is publicly viewable on the web. Do not put private data here.
#
# This is for PRODUCTION.
#
# Effective load order:
# - multiversion
# - mediawiki/config-schema.php
# - wmf-config/*Services.php
# - wmf-config/InitialiseSettings.php
# - wmf-config/mc.php [THIS FILE]
#
# Included from: wmf-config/CommonSettings.php.
#

// Explicitly disable the globals, just in case.
// This is for CACHE_MEMCACHED, and for Memcached-related entries in
// $wgObjectCaches that lack a 'servers' or 'persistent' key.
// Neither of which WMF uses.
$wgMemCachedServers = [];
$wgMemCachedPersistent = false;

$mcrouterServer = $_SERVER['MCROUTER_SERVER'] ?? '127.0.0.1:11213';

$wgObjectCaches['mcrouter'] = [
	'class'				 => 'MemcachedPeclBagOStuff',
	'serializer'			=> 'php',
	'persistent'			=> false,
	'servers'			   => [ $mcrouterServer ],
	'server_failure_limit'  => 1e9,
	'retry_timeout'		 => -1,
	'loggroup'			  => 'memcached',
	// 250ms, in microseconds
	'timeout'			   => 0.25 * 1e6,
	'allow_tcp_nagle_delay' => false,
];
$wgObjectCaches['mcrouter-primary-dc'] = array_merge(
	$wgObjectCaches['mcrouter'],
	[ 'routingPrefix' => "/$wmgMasterDatacenter/mw/" ]
);

$wgWANObjectCache = [
	// Specify the route prefix that mcrouter listens for and broadcasts.
	// The route prefix is configured in Puppet (profile::mediawiki::mcrouter_wancache).
	'broadcastRoutingPrefix' => '/*/mw-wan/',
];
$wgMainCacheType = 'mcrouter';

// (T297815) Configure Wikifunctions's special Memcache cluster, directly-accessed
$eqiadDCWFMC = [ 'eqiad' => [ 'server' => $mcrouterServer, 'prefix' => '/eqiad/wf-wan/' ] ];
$codfwDCWFMC = [ 'codfw' => [ 'server' => $mcrouterServer, 'prefix' => '/codfw/wf-wan/' ] ];

// This sets the order; the local datacenter (cheapest to read) is listed first.
$wgWikiLambdaObjectCaches = ( $wmgDatacenter === 'eqiad' )
	? $eqiadDCWFMC + $codfwDCWFMC
	: $codfwDCWFMC + $eqiadDCWFMC;

$wgWikiLambdaObjectCacheBroadcast = '/*/wf-wan/';

# vim: set sts=4 sw=4 et :