resourceloader: Disable ChronologyProtector to speed up wfGetLB()
authorTimo Tijhof <krinklemail@gmail.com>
Wed, 28 Sep 2016 20:37:20 +0000 (21:37 +0100)
committerTimo Tijhof <krinklemail@gmail.com>
Wed, 28 Sep 2016 20:47:23 +0000 (21:47 +0100)
For load.php requests, Xenon in Wikimedia production measures that half
the time for wfGetLB() is spent in ChronologyProtector::initPositions,
and its query to Memcached.

Change-Id: I24f90897e56fd679c6bd1acf764722ed58e51c67

load.php

index c832237..974771f 100644 (file)
--- a/load.php
+++ b/load.php
@@ -23,6 +23,7 @@
  */
 
 use MediaWiki\Logger\LoggerFactory;
+use MediaWiki\MediaWikiServices;
 
 // This endpoint is supposed to be independent of request cookies and other
 // details of the session. Enforce this constraint with respect to session use.
@@ -35,6 +36,12 @@ if ( !$wgRequest->checkUrlExtension() ) {
        return;
 }
 
+// Don't initialise ChronologyProtector from object cache, and
+// don't wait for unrelated MediaWiki writes when querying ResourceLoader.
+MediaWikiServices::getInstance()->getDBLoadBalancerFactory()->setRequestInfo( [
+       'ChronologyProtection' => 'false',
+] );
+
 // Set up ResourceLoader
 $resourceLoader = new ResourceLoader(
        ConfigFactory::getDefaultInstance()->makeConfig( 'main' ),