From b614290f73a40c644f2283056f2f2b7ba45595e6 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Mon, 27 Apr 2015 17:02:58 -0700 Subject: [PATCH] Converted User object cache to the WAN cache Bug: T93141 Change-Id: I93dc5367d85d661bd5bdce29f4665bb8cd21ba02 --- includes/User.php | 17 ++++++++--------- includes/UserRightsProxy.php | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/includes/User.php b/includes/User.php index c3d4a65c6d..1936efdfa5 100644 --- a/includes/User.php +++ b/includes/User.php @@ -410,15 +410,14 @@ class User implements IDBAccessObject { * @since 1.25 */ protected function loadFromCache() { - global $wgMemc; - if ( $this->mId == 0 ) { $this->loadDefaults(); return false; } + $cache = ObjectCache::getMainWANInstance(); $key = wfMemcKey( 'user', 'id', $this->mId ); - $data = $wgMemc->get( $key ); + $data = $cache->get( $key ); if ( !is_array( $data ) || $data['mVersion'] < self::VERSION ) { // Object is expired return false; @@ -440,8 +439,6 @@ class User implements IDBAccessObject { * This method should not be called outside the User class */ public function saveToCache() { - global $wgMemc; - $this->load(); $this->loadGroups(); $this->loadOptions(); @@ -451,6 +448,8 @@ class User implements IDBAccessObject { return; } + $cache = ObjectCache::getMainWANInstance(); + // The cache needs good consistency due to its high TTL, so the user // should have been loaded from the master to avoid lag amplification. if ( !( $this->queryFlagsUsed & self::READ_LATEST ) ) { @@ -465,7 +464,7 @@ class User implements IDBAccessObject { $data['mVersion'] = self::VERSION; $key = wfMemcKey( 'user', 'id', $this->mId ); - $wgMemc->set( $key, $data ); + $cache->set( $key, $data ); } /** @name newFrom*() static factory methods */ @@ -2310,11 +2309,11 @@ class User implements IDBAccessObject { * Called implicitly from invalidateCache() and saveSettings(). */ public function clearSharedCache() { - global $wgMemc; - $this->load(); if ( $this->mId ) { - $wgMemc->delete( wfMemcKey( 'user', 'id', $this->mId ) ); + $cache = ObjectCache::getMainWANInstance(); + + $cache->delete( wfMemcKey( 'user', 'id', $this->mId ) ); } } diff --git a/includes/UserRightsProxy.php b/includes/UserRightsProxy.php index 1b9e4b6906..a19f6984f2 100644 --- a/includes/UserRightsProxy.php +++ b/includes/UserRightsProxy.php @@ -278,8 +278,8 @@ class UserRightsProxy { array( 'user_id' => $this->id ), __METHOD__ ); - global $wgMemc; + $cache = ObjectCache::getMainWANInstance(); $key = wfForeignMemcKey( $this->database, false, 'user', 'id', $this->id ); - $wgMemc->delete( $key ); + $cache->delete( $key ); } } -- 2.20.1