X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Flibs%2Flockmanager%2FMemcLockManager.php;h=7f5f003df9285194009dce77267c01e513341a23;hb=672808c859d570fc66f8cf927237ea3f1e78eb9e;hp=f1f749faa0391e4dfa7c5acaa9e655923ac46457;hpb=eb0758923dfe6c99b9c9a2a8b9436409e44551de;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/libs/lockmanager/MemcLockManager.php b/includes/libs/lockmanager/MemcLockManager.php index f1f749faa0..7f5f003df9 100644 --- a/includes/libs/lockmanager/MemcLockManager.php +++ b/includes/libs/lockmanager/MemcLockManager.php @@ -46,7 +46,7 @@ class MemcLockManager extends QuorumLockManager { /** @var MemcachedBagOStuff[] Map of (server name => MemcachedBagOStuff) */ protected $cacheServers = []; - /** @var HashBagOStuff Server status cache */ + /** @var MapCacheLRU Server status cache */ protected $statusCache; /** @@ -81,7 +81,7 @@ class MemcLockManager extends QuorumLockManager { $this->cacheServers[$name] = new $class( $params ); } - $this->statusCache = new HashBagOStuff(); + $this->statusCache = new MapCacheLRU( 100 ); } protected function getLocksOnServer( $lockSrv, array $pathsByType ) { @@ -252,13 +252,13 @@ class MemcLockManager extends QuorumLockManager { throw new InvalidArgumentException( "Invalid cache server '$lockSrv'." ); } - $online = $this->statusCache->get( "online:$lockSrv" ); - if ( $online === false ) { + $online = $this->statusCache->get( "online:$lockSrv", 30 ); + if ( $online === null ) { $online = $this->cacheServers[$lockSrv]->set( __CLASS__ . ':ping', 1, 1 ); if ( !$online ) { // server down? $this->logger->warning( __METHOD__ . ": Could not contact $lockSrv." ); } - $this->statusCache->set( "online:$lockSrv", (int)$online, 30 ); + $this->statusCache->set( "online:$lockSrv", (int)$online ); } return $online ? $this->cacheServers[$lockSrv] : null;