resourceloader: Make minify cache keys globally shared instead of local
authorTimo Tijhof <krinklemail@gmail.com>
Wed, 1 Jul 2015 03:33:13 +0000 (04:33 +0100)
committerKrinkle <krinklemail@gmail.com>
Wed, 1 Jul 2015 03:44:55 +0000 (03:44 +0000)
The keys already contain a hash of the contents and the version of
the filter system. No need for these to be fragmented by wiki.

Previously wiki farms would minify the same module build for
every wiki. For e.g. Wikimedia this should bring down minification
runs for a new module version from ~800x to something lower.
It won't be 1 since modules may still vary by language, or config.

This should speed up load.php responses when a new module version
is deployed.

It will also reduce response time for page views of logged-in
users due to improved minification cache of embedded modules.

Change-Id: Iee884208c5c4ba40b46abd332271df698c6afb6f

includes/resourceloader/ResourceLoader.php

index 04b6fec..5d0ed3c 100644 (file)
@@ -206,7 +206,7 @@ class ResourceLoader implements LoggerAwareInterface {
                if ( !$options['cache'] ) {
                        $result = $this->applyFilter( $filter, $data );
                } else {
-                       $key = wfMemcKey( 'resourceloader', 'filter', $filter, self::$filterCacheVersion, md5( $data ) );
+                       $key = wfGlobalCacheKey( 'resourceloader', 'filter', $filter, self::$filterCacheVersion, md5( $data ) );
                        $cache = wfGetCache( wfIsHHVM() ? CACHE_ACCEL : CACHE_ANYTHING );
                        $cacheEntry = $cache->get( $key );
                        if ( is_string( $cacheEntry ) ) {