Cache negative results for interwiki prefix checks. Also helps filecache fail-over...
authorAaron Schulz <aaron@users.mediawiki.org>
Mon, 26 Sep 2011 03:37:20 +0000 (03:37 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Mon, 26 Sep 2011 03:37:20 +0000 (03:37 +0000)
includes/interwiki/Interwiki.php

index ac9bee7..f19919f 100644 (file)
@@ -151,6 +151,9 @@ class Interwiki {
                if ( !$iwData ) {
                        $key = wfMemcKey( 'interwiki', $prefix );
                        $iwData = $wgMemc->get( $key );
+                       if ( $iwData === '!EMPTY' ) {
+                               return false; // negative cache hit
+                       }
                }
 
                if( $iwData && is_array( $iwData ) ) { // is_array is hack for old keys
@@ -175,6 +178,8 @@ class Interwiki {
                        );
                        $wgMemc->add( $key, $mc, $wgInterwikiExpiry );
                        return $iw;
+               } else {
+                       $wgMemc->add( $key, '!EMPTY', $wgInterwikiExpiry ); // negative cache hit
                }
 
                return false;