From: Timo Tijhof Date: Tue, 14 Feb 2017 21:36:05 +0000 (-0800) Subject: resourceloader: Use upsert() instead of replace() for module_deps write X-Git-Tag: 1.31.0-rc.0~4066^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=e7b57d881a;hp=71803987d322ea60b3ba3d765375849adfe11776 resourceloader: Use upsert() instead of replace() for module_deps write This should perform better and reduce internal lock contention on the database server. Bug: T158105 Change-Id: I1acfb0630946283b317cb929e8d7c3b2af757ecf --- diff --git a/includes/resourceloader/ResourceLoaderModule.php b/includes/resourceloader/ResourceLoaderModule.php index 8124f3398b..fd74a82818 100644 --- a/includes/resourceloader/ResourceLoaderModule.php +++ b/includes/resourceloader/ResourceLoaderModule.php @@ -476,14 +476,18 @@ abstract class ResourceLoaderModule implements LoggerAwareInterface { } $vary = $context->getSkin() . '|' . $context->getLanguage(); + // Use relative paths to avoid ghost entries when $IP changes (T111481) + $deps = FormatJson::encode( self::getRelativePaths( $localFileRefs ) ); $dbw = wfGetDB( DB_MASTER ); - $dbw->replace( 'module_deps', - [ [ 'md_module', 'md_skin' ] ], + $dbw->upsert( 'module_deps', [ 'md_module' => $this->getName(), 'md_skin' => $vary, - // Use relative paths to avoid ghost entries when $IP changes (T111481) - 'md_deps' => FormatJson::encode( self::getRelativePaths( $localFileRefs ) ), + 'md_deps' => $deps, + ], + [ 'md_module', 'md_skin' ], + [ + 'md_deps' => $deps, ] );