MediaWiki  REL1_24
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)
 setMulti (array $data, $expiry=0)

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

array $connFailureErrors = array()
 Exceptions *.
array $connFailureTimes = array()
 UNIX timestamps *.
array $conns
 *
int $lastExpireAll = 0
 *
LoadBalancer $lb
 *
int $numServers
 *
int $purgePeriod = 100
 *
 $serverInfos
array $serverNames
 *
int $shards = 1
 *
string $tableName = 'objectcache'
 *

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:
array$params

Definition at line 80 of file SqlBagOStuff.php.


Member Function Documentation

SqlBagOStuff::cas ( casToken,
key,
value,
exptime = 0 
)
Parameters:
mixed$casToken
string$key
mixed$value
int$exptime
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 401 of file SqlBagOStuff.php.

Create shard tables.

For use from eval.php.

Definition at line 756 of file SqlBagOStuff.php.

SqlBagOStuff::delete ( key,
time = 0 
)
Parameters:
string$key
int$time
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 448 of file SqlBagOStuff.php.

Definition at line 631 of file SqlBagOStuff.php.

SqlBagOStuff::deleteObjectsExpiringBefore ( timestamp,
progressCallback = false 
)

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

Parameters:
string$timestamp
bool | callable$progressCallback
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 561 of file SqlBagOStuff.php.

References wfTimestampNow().

Definition at line 551 of file SqlBagOStuff.php.

Definition at line 534 of file SqlBagOStuff.php.

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

Reimplemented from BagOStuff.

Definition at line 204 of file SqlBagOStuff.php.

SqlBagOStuff::getDB ( serverIndex) [protected]

Get a connection to the specified database.

Parameters:
int$serverIndex
Returns:
DatabaseBase

Definition at line 112 of file SqlBagOStuff.php.

SqlBagOStuff::getMaxDateTime ( db) [protected]
Parameters:
DatabaseBase$db
Returns:
string

Definition at line 526 of file SqlBagOStuff.php.

Parameters:
array$keys
Returns:
array

Reimplemented from BagOStuff.

Definition at line 217 of file SqlBagOStuff.php.

SqlBagOStuff::getTableByKey ( key) [protected]

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

Parameters:
string$key
Returns:
array Server index and table name

Definition at line 166 of file SqlBagOStuff.php.

SqlBagOStuff::getTableNameByShard ( index) [protected]

Get the table name for a given shard index.

Parameters:
int$index
Returns:
string

Definition at line 189 of file SqlBagOStuff.php.

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

Handle a DBError which occurred during a read operation.

Parameters:
DBError$exception
int$serverIndex

Definition at line 691 of file SqlBagOStuff.php.

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

Handle a DBQueryError which occurred during a write operation.

Parameters:
DBError$exception
int$serverIndex

Definition at line 711 of file SqlBagOStuff.php.

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

Reimplemented from BagOStuff.

Definition at line 469 of file SqlBagOStuff.php.

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

Definition at line 518 of file SqlBagOStuff.php.

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

Mark a server down due to a DBConnectionError exception.

Parameters:
DBError$exception
int$serverIndex

Definition at line 737 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:
mixed$data
Returns:
string

Definition at line 654 of file SqlBagOStuff.php.

SqlBagOStuff::set ( key,
value,
exptime = 0 
)
Parameters:
string$key
mixed$value
int$exptime
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 357 of file SqlBagOStuff.php.

SqlBagOStuff::setMulti ( array data,
expiry = 0 
)
Parameters:
array$data
int$expiry
Returns:
bool

Reimplemented from BagOStuff.

Definition at line 288 of file SqlBagOStuff.php.

SqlBagOStuff::unserialize ( serial) [protected]

Unserialize and, if necessary, decompress an object.

Parameters:
string$serial
Returns:
mixed

Definition at line 669 of file SqlBagOStuff.php.


Member Data Documentation

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

Exceptions *.

Definition at line 50 of file SqlBagOStuff.php.

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

UNIX timestamps *.

Definition at line 48 of file SqlBagOStuff.php.

array SqlBagOStuff::$conns [protected]

*

Definition at line 38 of file SqlBagOStuff.php.

int SqlBagOStuff::$lastExpireAll = 0 [protected]

*

Definition at line 40 of file SqlBagOStuff.php.

LoadBalancer SqlBagOStuff::$lb [protected]

*

Definition at line 30 of file SqlBagOStuff.php.

int SqlBagOStuff::$numServers [protected]

*

Definition at line 36 of file SqlBagOStuff.php.

int SqlBagOStuff::$purgePeriod = 100 [protected]

*

Definition at line 42 of file SqlBagOStuff.php.

SqlBagOStuff::$serverInfos [protected]

Definition at line 32 of file SqlBagOStuff.php.

array SqlBagOStuff::$serverNames [protected]

*

Definition at line 34 of file SqlBagOStuff.php.

int SqlBagOStuff::$shards = 1 [protected]

*

Definition at line 44 of file SqlBagOStuff.php.

string SqlBagOStuff::$tableName = 'objectcache' [protected]

*

Definition at line 46 of file SqlBagOStuff.php.


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