MediaWiki  REL1_22
SqlBagOStuff Class Reference

Class to store objects in the database. More...

Inheritance diagram for SqlBagOStuff:
Collaboration diagram for SqlBagOStuff:

List of all members.

Public Member Functions

 __construct ($params)
 Constructor.
 cas ($casToken, $key, $value, $exptime=0)
 createTables ()
 Create shard tables.
 delete ($key, $time=0)
 deleteAll ()
 deleteObjectsExpiringBefore ($timestamp, $progressCallback=false)
 Delete objects from the database which expire before a certain date.
 expireAll ()
 get ($key, &$casToken=null)
 getMulti (array $keys)
 incr ($key, $step=1)
 set ($key, $value, $exptime=0)

Public Attributes

 $conns
 $lastExpireAll = 0
LoadBalancer $lb
 $numServers
 $purgePeriod = 100
 $serverInfos
 $serverNames
 $shards = 1
 $tableName = 'objectcache'

Protected Member Functions

 garbageCollect ()
 getDB ($serverIndex)
 Get a connection to the specified database.
 getMaxDateTime ($db)
 getTableByKey ($key)
 Get the server index and table name for a given key.
 getTableNameByShard ($index)
 Get the table name for a given shard index.
 handleReadError (DBError $exception, $serverIndex)
 Handle a DBError which occurred during a read operation.
 handleWriteError (DBError $exception, $serverIndex)
 Handle a DBQueryError which occurred during a write operation.
 isExpired ($db, $exptime)
 markServerDown ($exception, $serverIndex)
 Mark a server down due to a DBConnectionError exception.
 serialize (&$data)
 Serialize an object and, if possible, compress the representation.
 unserialize ($serial)
 Unserialize and, if necessary, decompress an object.

Protected Attributes

 $connFailureErrors = array()
 $connFailureTimes = array()

Detailed Description

Class to store objects in the database.

Definition at line 29 of file SqlBagOStuff.php.


Constructor & Destructor Documentation

Constructor.

Parameters are:

  • server: A server info structure in the format required by each element in $wgDBServers.
  • servers: An array of server info structures describing a set of database servers to distribute keys to. If this is specified, the "server" option will be ignored.
  • purgePeriod: The average number of object cache requests in between garbage collection operations, where expired entries are removed from the database. Or in other words, the reciprocal of the probability of purging on any given request. If this is set to zero, purging will never be done.
  • tableName: The table name to use, default is "objectcache".
  • shards: The number of tables to use for data storage on each server. If this is more than 1, table names will be formed in the style objectcacheNNN where NNN is the shard index, between 0 and shards-1. The number of digits will be the minimum number required to hold the largest shard index. Data will be distributed across all tables by key hash. This is for MySQL bugs 61735 and 61736.
Parameters:
$paramsarray

Definition at line 74 of file SqlBagOStuff.php.


Member Function Documentation

SqlBagOStuff::cas ( casToken,
key,
value,
exptime = 0 
)
Parameters:
$casTokenmixed
$keystring
$valuemixed
$exptimeint
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 325 of file SqlBagOStuff.php.

Create shard tables.

For use from eval.php.

Definition at line 676 of file SqlBagOStuff.php.

SqlBagOStuff::delete ( key,
time = 0 
)
Parameters:
$keystring
$timeint
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 374 of file SqlBagOStuff.php.

SqlBagOStuff::deleteObjectsExpiringBefore ( timestamp,
progressCallback = false 
)

Delete objects from the database which expire before a certain date.

Parameters:
$timestampstring
$progressCallbackbool|callback
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 491 of file SqlBagOStuff.php.

Referenced by expireAll().

Definition at line 481 of file SqlBagOStuff.php.

References deleteObjectsExpiringBefore(), and wfTimestampNow().

Referenced by garbageCollect().

Definition at line 464 of file SqlBagOStuff.php.

References expireAll().

SqlBagOStuff::get ( key,
&$  casToken = null 
)
Parameters:
$keystring
$casToken[optional]mixed
Returns:
mixed

Reimplemented from BagOStuff.

Definition at line 198 of file SqlBagOStuff.php.

SqlBagOStuff::getDB ( serverIndex) [protected]

Get a connection to the specified database.

Parameters:
$serverIndexinteger
Returns:
DatabaseBase

Definition at line 106 of file SqlBagOStuff.php.

Referenced by deleteAll().

SqlBagOStuff::getMaxDateTime ( db) [protected]
Returns:
string

Definition at line 456 of file SqlBagOStuff.php.

Parameters:
$keysarray
Returns:
Array

Reimplemented from BagOStuff.

Definition at line 211 of file SqlBagOStuff.php.

SqlBagOStuff::getTableByKey ( key) [protected]

Get the server index and table name for a given key.

Parameters:
$keystring
Returns:
Array: server index and table name

Definition at line 160 of file SqlBagOStuff.php.

SqlBagOStuff::getTableNameByShard ( index) [protected]

Get the table name for a given shard index.

Parameters:
$indexint
Returns:
string

Definition at line 183 of file SqlBagOStuff.php.

Referenced by deleteAll().

SqlBagOStuff::handleReadError ( DBError exception,
serverIndex 
) [protected]

Handle a DBError which occurred during a read operation.

Definition at line 622 of file SqlBagOStuff.php.

SqlBagOStuff::handleWriteError ( DBError exception,
serverIndex 
) [protected]

Handle a DBQueryError which occurred during a write operation.

Definition at line 637 of file SqlBagOStuff.php.

Referenced by deleteAll().

SqlBagOStuff::incr ( key,
step = 1 
)
Parameters:
$keystring
$stepint
Returns:
int|null

Reimplemented from BagOStuff.

Definition at line 397 of file SqlBagOStuff.php.

SqlBagOStuff::isExpired ( db,
exptime 
) [protected]
Parameters:
$exptimestring
Returns:
bool

Definition at line 449 of file SqlBagOStuff.php.

SqlBagOStuff::markServerDown ( exception,
serverIndex 
) [protected]

Mark a server down due to a DBConnectionError exception.

Definition at line 657 of file SqlBagOStuff.php.

SqlBagOStuff::serialize ( &$  data) [protected]

Serialize an object and, if possible, compress the representation.

On typical message and page data, this can provide a 3X decrease in storage requirements.

Parameters:
$datamixed
Returns:
string

Definition at line 588 of file SqlBagOStuff.php.

SqlBagOStuff::set ( key,
value,
exptime = 0 
)
Parameters:
$keystring
$valuemixed
$exptimeint
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 279 of file SqlBagOStuff.php.

SqlBagOStuff::unserialize ( serial) [protected]

Unserialize and, if necessary, decompress an object.

Parameters:
$serialstring
Returns:
mixed

Definition at line 603 of file SqlBagOStuff.php.


Member Data Documentation

SqlBagOStuff::$connFailureErrors = array() [protected]

Definition at line 44 of file SqlBagOStuff.php.

SqlBagOStuff::$connFailureTimes = array() [protected]

Definition at line 43 of file SqlBagOStuff.php.

SqlBagOStuff::$conns

Definition at line 37 of file SqlBagOStuff.php.

SqlBagOStuff::$lastExpireAll = 0

Definition at line 38 of file SqlBagOStuff.php.

LoadBalancer SqlBagOStuff::$lb

Definition at line 32 of file SqlBagOStuff.php.

SqlBagOStuff::$numServers

Definition at line 36 of file SqlBagOStuff.php.

SqlBagOStuff::$purgePeriod = 100

Definition at line 39 of file SqlBagOStuff.php.

SqlBagOStuff::$serverInfos

Definition at line 34 of file SqlBagOStuff.php.

SqlBagOStuff::$serverNames

Definition at line 35 of file SqlBagOStuff.php.

SqlBagOStuff::$shards = 1

Definition at line 40 of file SqlBagOStuff.php.

SqlBagOStuff::$tableName = 'objectcache'

Definition at line 41 of file SqlBagOStuff.php.


The documentation for this class was generated from the following file: