MediaWiki  master
SqlBagOStuff Class Reference

RDBMS-based caching module. More...

Inheritance diagram for SqlBagOStuff:
Collaboration diagram for SqlBagOStuff:

Public Member Functions

 __construct ( $params)
 Create a new backend instance from parameters injected by ObjectCache::newFromParams() More...
 
 createTables ()
 Create the shard tables on all databases. More...
 
 decr ( $key, $value=1, $flags=0)
 Decrease stored value of $key by $value while preserving its TTL. More...
 
 deleteAll ()
 Delete content of shard tables in every server. More...
 
 deleteObjectsExpiringBefore ( $timestamp, callable $progress=null, $limit=INF, string $tag=null)
 Delete all objects expiring before a certain date. More...
 
 doChangeTTLMulti (array $keys, $exptime, $flags=0)
 
 doLock ( $key, $timeout=6, $exptime=6)
 
 doUnlock ( $key)
 
 expireAll ()
 
 incr ( $key, $value=1, $flags=0)
 Increase stored value of $key by $value while preserving its TTL. More...
 
 makeKeyInternal ( $keyspace, $components)
 Make a cache key for the given keyspace and components. More...
 
- Public Member Functions inherited from MediumSpecificBagOStuff
 __construct (array $params=[])
 
 add ( $key, $value, $exptime=0, $flags=0)
 Insert an item if it does not already exist. More...
 
 addBusyCallback (callable $workCallback)
 Let a callback be run to avoid wasting time on special blocking calls. More...
 
 changeTTL ( $key, $exptime=0, $flags=0)
 Change the expiration on a key if it exists. More...
 
 changeTTLMulti (array $keys, $exptime, $flags=0)
 Change the expiration of multiple keys that exist. More...
 
 delete ( $key, $flags=0)
 Delete an item. More...
 
 deleteMulti (array $keys, $flags=0)
 Batch deletion. More...
 
 get ( $key, $flags=0)
 Get an item with the given key. More...
 
 getMulti (array $keys, $flags=0)
 Get an associative array containing the item for each of the keys that have items. More...
 
 getQoS ( $flag)
 
 getSegmentationSize ()
 
 getSegmentedValueMaxSize ()
 
 incrWithInit ( $key, $exptime, $step=1, $init=null, $flags=0)
 Increase the value of the given key (no TTL change) if it exists or create it otherwise. More...
 
 lock ( $key, $timeout=6, $exptime=6, $rclass='')
 
 makeGlobalKey ( $collection,... $components)
 Make a cache key for the default keyspace and given components. More...
 
 makeKey ( $collection,... $components)
 Make a cache key for the global keyspace and given components. More...
 
 merge ( $key, callable $callback, $exptime=0, $attempts=10, $flags=0)
 Merge changes into the existing cache value (possibly creating a new one) More...
 
 set ( $key, $value, $exptime=0, $flags=0)
 Set an item. More...
 
 setMulti (array $valueByKey, $exptime=0, $flags=0)
 Batch insertion/replace. More...
 
 unlock ( $key)
 Release an advisory lock on a key string. More...
 
- Public Member Functions inherited from BagOStuff
 clearLastError ()
 Clear the "last error" registry. More...
 
 getCurrentTime ()
 
 getLastError ( $watchPoint=0)
 Get the "last error" registry. More...
 
 getLogger ()
 
 getScopedLock ( $key, $timeout=6, $exptime=30, $rclass='')
 Get a lightweight exclusive self-unlocking lock. More...
 
 getWithSetCallback ( $key, $exptime, $callback, $flags=0)
 Get an item, regenerating and setting it if not found. More...
 
 isKeyGlobal ( $key)
 Check whether a cache key is in the global keyspace. More...
 
 registerWrapperInfoForStats (string $prefixComponent, string $statsGroup, callable $collectionCallback)
 Register info about a caching layer class that uses BagOStuff as a backing store. More...
 
 setLogger (LoggerInterface $logger)
 
 setMockTime (&$time)
 
 setNewPreparedValues (array $valueByKey)
 Stage a set of new key values for storage and estimate the amount of bytes needed. More...
 
 watchErrors ()
 Get a "watch point" token that can be used to get the "last error" to occur after now. More...
 

Protected Member Functions

 doAdd ( $key, $value, $exptime=0, $flags=0)
 Insert an item if it does not already exist. More...
 
 doCas ( $casToken, $key, $value, $exptime=0, $flags=0)
 Set an item if the current CAS token matches the provided CAS token. More...
 
 doChangeTTL ( $key, $exptime, $flags)
 
 doDelete ( $key, $flags=0)
 Delete an item. More...
 
 doDeleteMulti (array $keys, $flags=0)
 
 doGet ( $key, $flags=0, &$casToken=null)
 Get an item. More...
 
 doGetMulti (array $keys, $flags=0)
 Get an associative array containing the item for each of the keys that have items. More...
 
 doIncrWithInit ( $key, $exptime, $step, $init, $flags)
 
 doSet ( $key, $value, $exptime=0, $flags=0)
 Set an item. More...
 
 doSetMulti (array $data, $exptime=0, $flags=0)
 
 serialize ( $value)
 
 unserialize ( $value)
 
- Protected Member Functions inherited from MediumSpecificBagOStuff
 cas ( $casToken, $key, $value, $exptime=0, $flags=0)
 Set an item if the current CAS token matches the provided CAS token. More...
 
 convertGenericKey ( $key)
 Convert a "generic" reversible cache key into one for this cache. More...
 
 debug ( $text)
 
 getExpirationAsTimestamp ( $exptime)
 Convert an optionally relative timestamp to an absolute time. More...
 
 getExpirationAsTTL ( $exptime)
 Convert an optionally absolute expiry time to a relative time. More...
 
 getSerialized ( $value, $key)
 Get the serialized form a value, logging a warning if it involves custom classes. More...
 
 isInteger ( $value)
 Check if a value is an integer. More...
 
 isRelativeExpiration ( $exptime)
 
 makeLockKey ( $key)
 
 makeValueOrSegmentList ( $key, $value, $exptime, $flags, &$ok)
 Make the entry to store at a key (inline or segment list), storing any segments. More...
 
 mergeViaCas ( $key, callable $callback, $exptime, $attempts, $flags)
 
 resolveSegments ( $key, $mainValue)
 Get and reassemble the chunks of blob at the given key. More...
 
 tokensMatch ( $value, $otherValue)
 
 updateOpStats (string $op, array $keyInfo)
 
- Protected Member Functions inherited from BagOStuff
 componentsFromGenericKey ( $key)
 Extract the components from a "generic" reversible cache key. More...
 
 determineKeyPrefixForStats ( $key)
 
 fieldHasFlags ( $field, $flags)
 
 genericKeyFromComponents (... $components)
 At a minimum, there must be a keyspace and collection name component. More...
 
 mergeFlagMaps (array $bags)
 Merge the flag maps of one or more BagOStuff objects into a "lowest common denominator" map. More...
 
 proxyCall (string $method, int $arg0Sig, int $resSig, array $genericArgs, BagOStuff $wrapper)
 Call a method on behalf of wrapper BagOStuff instance that uses "generic" keys. More...
 
 setLastError ( $error)
 Set the "last error" registry due to a problem encountered during an attempted operation. More...
 

Protected Attributes

Exception[] $connFailureErrors = []
 Map of (shard index => Exception) More...
 
float[] $connFailureTimes = []
 Map of (shard index => UNIX timestamps) More...
 
IMaintainableDatabase[] $conns
 Map of (shard index => DB handle) More...
 
string false null $dbDomain
 DB name used for keys using the LoadBalancer. More...
 
float $lastGarbageCollect = 0
 UNIX timestamp. More...
 
ILoadBalancer null $loadBalancer
 
callable null $loadBalancerCallback
 Injected function which returns a LoadBalancer. More...
 
bool $multiPrimaryMode
 Whether multi-primary mode is enabled. More...
 
int $numTableShards = 1
 Number of table shards to use on each server. More...
 
int $purgeLimit = 100
 Max expired rows to purge during randomized garbage collection. More...
 
int $purgePeriod = 10
 Average number of writes required to trigger garbage collection. More...
 
bool $replicaOnly
 Whether to use replicas instead of primaries (if using LoadBalancer) More...
 
array[] $serverInfos = []
 (server index => server config) More...
 
string[] $serverTags = []
 (server index => tag/host name) More...
 
string $tableName = 'objectcache'
 
bool $useLB = false
 Whether to use the LoadBalancer. More...
 
int $writeBatchSize = 100
 
- Protected Attributes inherited from MediumSpecificBagOStuff
array< string, array > $locks = []
 Map of (key => (class LOCK_* constant => value) More...
 
float $maxLockSendDelay = 0.05
 Seconds; maximum expected seconds for a lock ping to reach the backend. More...
 
int $segmentationSize
 Bytes; chunk size of segmented cache values. More...
 
int $segmentedValueMaxSize
 Bytes; maximum total size of a segmented cache value. More...
 
const LOCK_DEPTH = 1
 
const LOCK_EXPIRY = 3
 
const LOCK_RCLASS = 0
 
const LOCK_TIME = 2
 
const METRIC_OP_ADD = 'add'
 
const METRIC_OP_CAS = 'cas'
 
const METRIC_OP_CHANGE_TTL = 'change_ttl'
 
const METRIC_OP_DECR = 'decr'
 
const METRIC_OP_DELETE = 'delete'
 
const METRIC_OP_GET = 'get'
 
const METRIC_OP_INCR = 'incr'
 
const METRIC_OP_SET = 'set'
 
const PASS_BY_REF = -1
 Idiom for doGet() to return extra information by reference. More...
 
- Protected Attributes inherited from BagOStuff
callable null $asyncHandler
 
int[] $attrMap = []
 Map of (BagOStuff:ATTR_* constant => BagOStuff:QOS_* constant) More...
 
string $keyspace
 Default keyspace; used by makeKey() More...
 
int $lastError = self::ERR_NONE
 BagOStuff:ERR_* constant of the last error that occurred. More...
 
int $lastErrorId = 0
 Error event sequence number of the last error that occurred. More...
 
LoggerInterface $logger
 
StatsdDataFactoryInterface $stats
 
array< string, array > $wrapperInfoByPrefix = []
 Cache key processing callbacks and info for metrics. More...
 

Additional Inherited Members

- Public Attributes inherited from BagOStuff
const MAX_CONFLICTS_ONE = 1
 Abort after the first merge conflict. More...
 
const READ_LATEST = 1
 Bitfield constants for get()/getMulti(); these are only advisory. More...
 
const READ_VERIFIED = 2
 Promise that the caller handles detection of staleness. More...
 
const WRITE_ALLOW_SEGMENTS = 16
 Allow partitioning of the value if it is a large string. More...
 
const WRITE_BACKGROUND = 64
 If supported, do not block on write operation completion; instead, treat writes as succesful based on whether they could be buffered. More...
 
const WRITE_CACHE_ONLY = 8
 Bitfield constants for set()/merge(); these are only advisory. More...
 
const WRITE_PRUNE_SEGMENTS = 32
 Delete all the segments if the value is partitioned. More...
 
- Public Attributes inherited from Wikimedia\LightweightObjectStore\StorageAwareness
const ATTR_DURABILITY = 2
 Durability of writes; see QOS_DURABILITY_* (higher means stronger) More...
 
const ATTR_EMULATION = 1
 Emulation/fallback mode; see QOS_EMULATION_*; higher is better. More...
 
const ERR_NO_RESPONSE = 1
 Storage medium failed to yield a complete response to an operation. More...
 
const ERR_NONE = 0
 No storage medium error. More...
 
const ERR_UNEXPECTED = 3
 Storage medium operation failed due to usage limitations or an I/O error. More...
 
const ERR_UNREACHABLE = 2
 Storage medium could not be reached to establish a connection. More...
 
const QOS_DURABILITY_DISK = 4
 Data is saved to disk and writes do not usually block on fsync() More...
 
const QOS_DURABILITY_NONE = 1
 Data is never saved to begin with (blackhole store) More...
 
const QOS_DURABILITY_RDBMS = 5
 Data is saved to disk and writes usually block on fsync(), like a standard RDBMS. More...
 
const QOS_DURABILITY_SCRIPT = 2
 Data is lost at the end of the current web request or CLI script. More...
 
const QOS_DURABILITY_SERVICE = 3
 Data is lost once the service storing the data restarts. More...
 
const QOS_EMULATION_SQL = 1
 Fallback disk-based SQL store. More...
 
const QOS_UNKNOWN = INF
 Generic "unknown" value; useful for comparisons (always "good enough") More...
 
- Static Protected Attributes inherited from BagOStuff
static int $nextErrorMonitorId = 1
 Next sequence number to use for watch/error events. More...
 

Detailed Description

RDBMS-based caching module.

The following database sharding schemes are supported:

  • None; all keys map to the same shard
  • Hash; keys map to shards via consistent hashing

The following database replication topologies are supported:

  • A primary database server for each shard, all within one datacenter
  • A co-primary database server for each shard within each datacenter

Definition at line 50 of file SqlBagOStuff.php.

Constructor & Destructor Documentation

◆ __construct()

SqlBagOStuff::__construct (   $params)

Create a new backend instance from parameters injected by ObjectCache::newFromParams()

The database servers must be provided by either the "server" parameter, the "servers" parameter or the "loadBalancer" parameter.

The parameters are as described at \\MediaWiki\\MainConfigSchema::ObjectCaches except that:

  • the configured "cluster" and main LB fallback modes are implemented by the wiring by passing "loadBalancerCallback".
  • "dbDomain" is required if "loadBalancerCallback" is set, whereas in config it may be absent.
Access: internal
Parameters
array$params
  • server: string
  • servers: string[]
  • loadBalancerCallback: A closure which provides a LoadBalancer object
    • dbDomain: string|false
  • multiPrimaryMode: bool
  • purgePeriod: int|float
  • purgeLimit: int
  • tableName: string
  • shards: int
  • replicaOnly: bool
  • writeBatchSize: int

Definition at line 143 of file SqlBagOStuff.php.

References $tableName, Wikimedia\LightweightObjectStore\StorageAwareness\ATTR_DURABILITY, Wikimedia\LightweightObjectStore\StorageAwareness\ATTR_EMULATION, Wikimedia\LightweightObjectStore\StorageAwareness\QOS_DURABILITY_RDBMS, and Wikimedia\LightweightObjectStore\StorageAwareness\QOS_EMULATION_SQL.

Member Function Documentation

◆ createTables()

SqlBagOStuff::createTables ( )

Create the shard tables on all databases.

This is typically called manually by a sysadmin via eval.php, e.g. for ParserCache:

ObjectCache::getInstance( 'myparsercache' )->createTables();
static getInstance( $id)
Get a cached instance of the specified type of cache object.
Definition: ObjectCache.php:75

This is different from $services->getParserCache()->getCacheStorage()->createTables(), which would use the backend set via $wgParserCacheType, which shouldn't be set yet for the backend you are creating shard tables on. The expectation is to first add the new backend to $wgObjectCaches, run the above, and then enable it for live ParserCache traffic by setting $wgParserCacheType.

Definition at line 1821 of file SqlBagOStuff.php.

References Wikimedia\Rdbms\IDatabase\getType(), Wikimedia\Rdbms\IDatabase\query(), and Wikimedia\Rdbms\Platform\ISQLPlatform\tableName().

◆ decr()

SqlBagOStuff::decr (   $key,
  $value = 1,
  $flags = 0 
)

Decrease stored value of $key by $value while preserving its TTL.

Parameters
string$key
int$valueValue to subtract from $key (default: 1) [optional]
int$flagsBit field of class WRITE_* constants [optional]
Returns
int|bool New value or false on failure
Deprecated:
Since 1.38

Reimplemented from BagOStuff.

Definition at line 293 of file SqlBagOStuff.php.

◆ deleteAll()

SqlBagOStuff::deleteAll ( )

Delete content of shard tables in every server.

Return true if the operation is successful, false otherwise.

Returns
bool

Definition at line 1542 of file SqlBagOStuff.php.

References $numTableShards, and Wikimedia\Rdbms\IDatabase\delete().

◆ deleteObjectsExpiringBefore()

SqlBagOStuff::deleteObjectsExpiringBefore (   $timestamp,
callable  $progress = null,
  $limit = INF,
string  $tag = null 
)

Delete all objects expiring before a certain date.

Parameters
string | int$timestampThe reference date in MW or TS_UNIX format
callable | null$progressOptional, a function which will be called regularly during long-running operations with the percentage progress as the first parameter. [optional]
int | float$limitMaximum number of keys to delete [default: INF]
string | null$tagTag to purge a single shard only. This is only supported when server tags are used in configuration.
Returns
bool Success; false if unimplemented

Reimplemented from MediumSpecificBagOStuff.

Definition at line 1391 of file SqlBagOStuff.php.

Referenced by expireAll().

◆ doAdd()

SqlBagOStuff::doAdd (   $key,
  $value,
  $exptime = 0,
  $flags = 0 
)
protected

Insert an item if it does not already exist.

Parameters
string$key
mixed$value
int$exptime
int$flagsBitfield of BagOStuff::WRITE_* constants (since 1.33)
Returns
bool Success

Reimplemented from MediumSpecificBagOStuff.

Definition at line 228 of file SqlBagOStuff.php.

◆ doCas()

SqlBagOStuff::doCas (   $casToken,
  $key,
  $value,
  $exptime = 0,
  $flags = 0 
)
protected

Set an item if the current CAS token matches the provided CAS token.

Parameters
mixed$casTokenCAS token from an existing version of the key
string$key
mixed$value
int$exptimeEither an interval in seconds or a unix timestamp for expiry
int$flagsBitfield of BagOStuff::WRITE_* constants
Returns
bool Success

Reimplemented from MediumSpecificBagOStuff.

Definition at line 243 of file SqlBagOStuff.php.

◆ doChangeTTL()

SqlBagOStuff::doChangeTTL (   $key,
  $exptime,
  $flags 
)
protected
Parameters
string$key
int$exptime
int$flags
Returns
bool

Reimplemented from MediumSpecificBagOStuff.

Definition at line 258 of file SqlBagOStuff.php.

References BagOStuff\getCurrentTime().

◆ doChangeTTLMulti()

SqlBagOStuff::doChangeTTLMulti ( array  $keys,
  $exptime,
  $flags = 0 
)
Parameters
string[]$keysList of keys
int$exptimeTTL or UNIX timestamp
int$flagsBitfield of BagOStuff::WRITE_* constants
Returns
bool Success

Reimplemented from MediumSpecificBagOStuff.

Definition at line 382 of file SqlBagOStuff.php.

References $keys, and BagOStuff\getCurrentTime().

◆ doDelete()

SqlBagOStuff::doDelete (   $key,
  $flags = 0 
)
protected

Delete an item.

Parameters
string$key
int$flagsBitfield of BagOStuff::WRITE_* constants
Returns
bool True if the item was deleted or not found, false on failure

Reimplemented from MediumSpecificBagOStuff.

Definition at line 217 of file SqlBagOStuff.php.

References BagOStuff\getCurrentTime().

◆ doDeleteMulti()

SqlBagOStuff::doDeleteMulti ( array  $keys,
  $flags = 0 
)
protected
Parameters
string[]$keysList of keys
int$flagsBitfield of BagOStuff::WRITE_* constants
Returns
bool Success

Reimplemented from MediumSpecificBagOStuff.

Definition at line 371 of file SqlBagOStuff.php.

References $keys, and BagOStuff\getCurrentTime().

◆ doGet()

SqlBagOStuff::doGet (   $key,
  $flags = 0,
$casToken = null 
)
protected

Get an item.

The CAS token should be null if the key does not exist or the value is corrupt

Parameters
string$key
int$flagsBitfield of BagOStuff::READ_* constants [optional]
mixed&$casTokenCAS token if MediumSpecificBagOStuff::PASS_BY_REF [returned]
Returns
mixed Returns false on failure or if the item does not exist

Reimplemented from MediumSpecificBagOStuff.

Definition at line 185 of file SqlBagOStuff.php.

References MediumSpecificBagOStuff\PASS_BY_REF, unserialize(), and MediumSpecificBagOStuff\updateOpStats().

◆ doGetMulti()

SqlBagOStuff::doGetMulti ( array  $keys,
  $flags = 0 
)
protected

Get an associative array containing the item for each of the keys that have items.

Parameters
string[]$keysList of keys
int$flagsBitfield; supports READ_LATEST [optional]
Returns
array Map of (key => value) for existing keys; preserves the order of $keys

Reimplemented from MediumSpecificBagOStuff.

Definition at line 330 of file SqlBagOStuff.php.

References $keys, unserialize(), and MediumSpecificBagOStuff\updateOpStats().

◆ doIncrWithInit()

SqlBagOStuff::doIncrWithInit (   $key,
  $exptime,
  $step,
  $init,
  $flags 
)
protected
Parameters
string$key
int$exptime
int$step
int$init
int$flags
Returns
int|bool New value or false on failure

Reimplemented from MediumSpecificBagOStuff.

Definition at line 269 of file SqlBagOStuff.php.

References BagOStuff\getCurrentTime().

◆ doLock()

SqlBagOStuff::doLock (   $key,
  $timeout = 6,
  $exptime = 6 
)
See also
MediumSpecificBagOStuff::lock()
Parameters
string$key
int$timeoutLock wait timeout; 0 for non-blocking [optional]
int$exptimeLock time-to-live 1 day maximum [optional]
Returns
float|null UNIX timestamp of acquisition; null on failure

Reimplemented from MediumSpecificBagOStuff.

Definition at line 1560 of file SqlBagOStuff.php.

References Wikimedia\Rdbms\IDatabase\lock().

◆ doSet()

SqlBagOStuff::doSet (   $key,
  $value,
  $exptime = 0,
  $flags = 0 
)
protected

Set an item.

Parameters
string$key
mixed$value
int$exptimeEither an interval in seconds or a unix timestamp for expiry
int$flagsBitfield of BagOStuff::WRITE_* constants
Returns
bool Success

Reimplemented from MediumSpecificBagOStuff.

Definition at line 206 of file SqlBagOStuff.php.

References BagOStuff\getCurrentTime().

◆ doSetMulti()

SqlBagOStuff::doSetMulti ( array  $data,
  $exptime = 0,
  $flags = 0 
)
protected
Parameters
mixed[]$dataMap of (key => value)
int$exptimeEither an interval in seconds or a unix timestamp for expiry
int$flagsBitfield of BagOStuff::WRITE_* constants
Returns
bool Success

Reimplemented from MediumSpecificBagOStuff.

Definition at line 355 of file SqlBagOStuff.php.

References BagOStuff\getCurrentTime().

◆ doUnlock()

SqlBagOStuff::doUnlock (   $key)
See also
MediumSpecificBagOStuff::unlock()
Parameters
string$key
Returns
bool Success

Reimplemented from MediumSpecificBagOStuff.

Definition at line 1581 of file SqlBagOStuff.php.

References Wikimedia\Rdbms\IDatabase\unlock().

◆ expireAll()

SqlBagOStuff::expireAll ( )

Definition at line 1387 of file SqlBagOStuff.php.

References deleteObjectsExpiringBefore(), and BagOStuff\getCurrentTime().

◆ incr()

SqlBagOStuff::incr (   $key,
  $value = 1,
  $flags = 0 
)

Increase stored value of $key by $value while preserving its TTL.

Parameters
string$keyKey to increase
int$valueValue to add to $key (default: 1) [optional]
int$flagsBit field of class WRITE_* constants [optional]
Returns
int|bool New value or false on failure
Deprecated:
Since 1.38

Reimplemented from BagOStuff.

Definition at line 289 of file SqlBagOStuff.php.

◆ makeKeyInternal()

SqlBagOStuff::makeKeyInternal (   $keyspace,
  $components 
)

Make a cache key for the given keyspace and components.

Long components might be converted to respective hashes due to size constraints. In extreme cases, all of them might be combined into a single hash component.

Parameters
string$keyspaceKeyspace component
string[] | int[]$componentsKey components (key collection name first)
Returns
string Keyspace-prepended list of encoded components as a colon-separated value
Since
1.27

Reimplemented from MediumSpecificBagOStuff.

Definition at line 1598 of file SqlBagOStuff.php.

References BagOStuff\$keyspace.

◆ serialize()

SqlBagOStuff::serialize (   $value)
protected
Parameters
mixed$value
Returns
string|int|false String/integer representation
Note
Special handling is usually needed for integers so incr()/decr() work

Reimplemented from MediumSpecificBagOStuff.

Definition at line 1624 of file SqlBagOStuff.php.

◆ unserialize()

SqlBagOStuff::unserialize (   $value)
protected
Parameters
string | int | false$value
Returns
mixed Original value or false on error
Note
Special handling is usually needed for integers so incr()/decr() work

Reimplemented from MediumSpecificBagOStuff.

Definition at line 1638 of file SqlBagOStuff.php.

References MediumSpecificBagOStuff\isInteger().

Referenced by doGet(), and doGetMulti().

Member Data Documentation

◆ $connFailureErrors

Exception [] SqlBagOStuff::$connFailureErrors = []
protected

Map of (shard index => Exception)

Definition at line 86 of file SqlBagOStuff.php.

◆ $connFailureTimes

float [] SqlBagOStuff::$connFailureTimes = []
protected

Map of (shard index => UNIX timestamps)

Definition at line 84 of file SqlBagOStuff.php.

◆ $conns

IMaintainableDatabase [] SqlBagOStuff::$conns
protected

Map of (shard index => DB handle)

Definition at line 82 of file SqlBagOStuff.php.

◆ $dbDomain

string false null SqlBagOStuff::$dbDomain
protected

DB name used for keys using the LoadBalancer.

Definition at line 56 of file SqlBagOStuff.php.

◆ $lastGarbageCollect

float SqlBagOStuff::$lastGarbageCollect = 0
protected

UNIX timestamp.

Definition at line 65 of file SqlBagOStuff.php.

◆ $loadBalancer

ILoadBalancer null SqlBagOStuff::$loadBalancer
protected

Definition at line 54 of file SqlBagOStuff.php.

◆ $loadBalancerCallback

callable null SqlBagOStuff::$loadBalancerCallback
protected

Injected function which returns a LoadBalancer.

Definition at line 52 of file SqlBagOStuff.php.

◆ $multiPrimaryMode

bool SqlBagOStuff::$multiPrimaryMode
protected

Whether multi-primary mode is enabled.

Definition at line 79 of file SqlBagOStuff.php.

◆ $numTableShards

int SqlBagOStuff::$numTableShards = 1
protected

Number of table shards to use on each server.

Definition at line 71 of file SqlBagOStuff.php.

Referenced by deleteAll().

◆ $purgeLimit

int SqlBagOStuff::$purgeLimit = 100
protected

Max expired rows to purge during randomized garbage collection.

Definition at line 69 of file SqlBagOStuff.php.

◆ $purgePeriod

int SqlBagOStuff::$purgePeriod = 10
protected

Average number of writes required to trigger garbage collection.

Definition at line 67 of file SqlBagOStuff.php.

◆ $replicaOnly

bool SqlBagOStuff::$replicaOnly
protected

Whether to use replicas instead of primaries (if using LoadBalancer)

Definition at line 77 of file SqlBagOStuff.php.

◆ $serverInfos

array [] SqlBagOStuff::$serverInfos = []
protected

(server index => server config)

Definition at line 61 of file SqlBagOStuff.php.

◆ $serverTags

string [] SqlBagOStuff::$serverTags = []
protected

(server index => tag/host name)

Definition at line 63 of file SqlBagOStuff.php.

◆ $tableName

string SqlBagOStuff::$tableName = 'objectcache'
protected

Definition at line 75 of file SqlBagOStuff.php.

Referenced by __construct().

◆ $useLB

bool SqlBagOStuff::$useLB = false
protected

Whether to use the LoadBalancer.

Definition at line 58 of file SqlBagOStuff.php.

◆ $writeBatchSize

int SqlBagOStuff::$writeBatchSize = 100
protected

Definition at line 73 of file SqlBagOStuff.php.


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