MediaWiki  1.23.2
MySqlLockManager Class Reference

MySQL version of DBLockManager that supports shared locks. More...

Inheritance diagram for MySqlLockManager:
Collaboration diagram for MySqlLockManager:

Protected Member Functions

 doGetLocksOnServer ( $lockSrv, array $paths, $type)
 Get a connection to a lock DB and acquire locks on $paths. More...
 
 initConnection ( $lockDb, DatabaseBase $db)
 
 releaseAllLocks ()
 
- Protected Member Functions inherited from DBLockManager
 cacheCheckFailures ( $lockDb)
 Checks if the DB has not recently had connection/query errors. More...
 
 cacheRecordFailure ( $lockDb)
 Log a lock request failure to the cache. More...
 
 freeLocksOnServer ( $lockSrv, array $pathsByType)
 Get a connection to a lock server and release locks on $paths. More...
 
 getConnection ( $lockDb)
 Get (or reuse) a connection to a lock DB. More...
 
 getLocksOnServer ( $lockSrv, array $pathsByType)
 Get a connection to a lock server and acquire locks. More...
 
 getMissKey ( $lockDb)
 Get a cache key for recent query misses for a DB. More...
 
 isServerUp ( $lockSrv)
 
- Protected Member Functions inherited from QuorumLockManager
 doLock (array $paths, $type)
 Lock resources with the given keys and lock type. More...
 
 doLockByType (array $pathsByType)
 
 doLockingRequestBucket ( $bucket, array $pathsByType)
 Attempt to acquire locks with the peers for a bucket. More...
 
 doUnlock (array $paths, $type)
 Unlock resources with the given keys and lock type. More...
 
 doUnlockByType (array $pathsByType)
 
 doUnlockingRequestBucket ( $bucket, array $pathsByType)
 Attempt to release locks with the peers for a bucket. More...
 
 getBucketFromPath ( $path)
 Get the bucket for resource path. More...
 
- Protected Member Functions inherited from LockManager
 normalizePathsByType (array $pathsByType)
 Normalize the $paths array by converting LOCK_UW locks into the appropriate type and removing any duplicated paths for each lock type. More...
 
 sha1Base16Absolute ( $path)
 Get the base 16 SHA-1 of a string, padded to 31 digits. More...
 
 sha1Base36Absolute ( $path)
 Get the base 36 SHA-1 of a string, padded to 31 digits. More...
 

Protected Attributes

array $lockTypeMap
 Mapping of lock types to the type actually used *. More...
 
- Protected Attributes inherited from DBLockManager
array $conns = array()
 Map Database connections (DB name => Database) *. More...
 
array $dbServers
 Map of DB names to server config *. More...
 
 $lockExpiry
 
 $safeDelay
 
 $session = 0
 
BagOStuff $statusCache
 
- Protected Attributes inherited from QuorumLockManager
array $degradedBuckets = array()
 Map of degraded buckets *. More...
 
array $srvsByBucket = array()
 Map of bucket indexes to peer server lists *. More...
 
- Protected Attributes inherited from LockManager
 $domain
 
array $locksHeld = array()
 Map of (resource path => lock type => count) *. More...
 
 $lockTTL
 
array $lockTypeMap
 Mapping of lock types to the type actually used *. More...
 

Additional Inherited Members

- Public Member Functions inherited from DBLockManager
 __construct (array $config)
 Construct a new instance from configuration. More...
 
 __destruct ()
 Make sure remaining locks get cleared for sanity. More...
 
- Public Member Functions inherited from LockManager
 lock (array $paths, $type=self::LOCK_EX, $timeout=0)
 Lock the resources at the given abstract paths. More...
 
 lockByType (array $pathsByType, $timeout=0)
 Lock the resources at the given abstract paths. More...
 
 unlock (array $paths, $type=self::LOCK_EX)
 Unlock the resources at the given abstract paths. More...
 
 unlockByType (array $pathsByType)
 Unlock the resources at the given abstract paths. More...
 
- Public Attributes inherited from LockManager
const LOCK_EX = 3
 
const LOCK_SH = 1
 Lock types; stronger locks have higher values. More...
 
const LOCK_UW = 2
 

Detailed Description

MySQL version of DBLockManager that supports shared locks.

All locks are non-blocking, which avoids deadlocks.

Definition at line 244 of file DBLockManager.php.

Member Function Documentation

◆ doGetLocksOnServer()

MySqlLockManager::doGetLocksOnServer (   $lockSrv,
array  $paths,
  $type 
)
protected

Get a connection to a lock DB and acquire locks on $paths.

This does not use GET_LOCK() per http://bugs.mysql.com/bug.php?id=1118.

See also
DBLockManager::getLocksOnServer()
Parameters
string$lockSrv
array$paths
string$type
Returns
Status

Definition at line 270 of file DBLockManager.php.

References $keys, $path, $type, array(), as, DBLockManager\getConnection(), Status\newGood(), and LockManager\sha1Base36Absolute().

◆ initConnection()

MySqlLockManager::initConnection (   $lockDb,
DatabaseBase  $db 
)
protected
Parameters
string$lockDb
DatabaseBase$db

Reimplemented from DBLockManager.

Definition at line 255 of file DBLockManager.php.

References DatabaseBase\query().

◆ releaseAllLocks()

MySqlLockManager::releaseAllLocks ( )
protected
See also
QuorumLockManager::releaseAllLocks()
Returns
Status

Reimplemented from QuorumLockManager.

Definition at line 340 of file DBLockManager.php.

References $e, as, and Status\newGood().

Member Data Documentation

◆ $lockTypeMap

array MySqlLockManager::$lockTypeMap
protected
Initial value:
self::LOCK_SH => self::LOCK_SH,
self::LOCK_UW => self::LOCK_SH,
self::LOCK_EX => self::LOCK_EX
)

Mapping of lock types to the type actually used *.

Definition at line 245 of file DBLockManager.php.


The documentation for this class was generated from the following file:
array
the array() calling protocol came about after MediaWiki 1.4rc1.
List of Api Query prop modules.