MediaWiki  1.28.1
CachedBagOStuff Class Reference

Wrapper around a BagOStuff that caches data in memory. More...

Inheritance diagram for CachedBagOStuff:
Collaboration diagram for CachedBagOStuff:

Public Member Functions

 __construct (BagOStuff $backend, $params=[])
 
 clearLastError ()
 
 delete ($key, $flags=0)
 
 deleteObjectsExpiringBefore ($date, $progressCallback=false)
 
 getLastError ()
 
 lock ($key, $timeout=6, $expiry=6, $rclass= '')
 
 modifySimpleRelayEvent (array $event)
 
 set ($key, $value, $exptime=0, $flags=0)
 
 setDebug ($bool)
 
 unlock ($key)
 
- Public Member Functions inherited from HashBagOStuff
 __construct ($params=[])
 
 clear ()
 
 delete ($key)
 
 set ($key, $value, $exptime=0, $flags=0)
 
- Public Member Functions inherited from BagOStuff
 __construct (array $params=[])
 $params include: More...
 
 add ($key, $value, $exptime=0)
 
 addBusyCallback (callable $workCallback)
 Let a callback be run to avoid wasting time on special blocking calls. More...
 
 changeTTL ($key, $expiry=0)
 Reset the TTL on a key if it exists. More...
 
 clearLastError ()
 Clear the "last error" registry. More...
 
 decr ($key, $value=1)
 Decrease stored value of $key by $value while preserving its TTL. More...
 
 delete ($key)
 Delete an item. More...
 
 deleteObjectsExpiringBefore ($date, $progressCallback=false)
 Delete all objects expiring before a certain date. More...
 
 get ($key, $flags=0, $oldFlags=null)
 Get an item with the given key. More...
 
 getLastError ()
 Get the "last error" registered; clearLastError() should be called manually. More...
 
 getMulti (array $keys, $flags=0)
 Get an associative array containing the item for each of the keys that have items. More...
 
 getQoS ($flag)
 
 getScopedLock ($key, $timeout=6, $expiry=30, $rclass= '')
 Get a lightweight exclusive self-unlocking lock. More...
 
 getWithSetCallback ($key, $ttl, $callback, $flags=0)
 Get an item with the given key, regenerating and setting it if not found. More...
 
 incr ($key, $value=1)
 Increase stored value of $key by $value while preserving its TTL. More...
 
 incrWithInit ($key, $ttl, $value=1, $init=1)
 Increase stored value of $key by $value while preserving its TTL. More...
 
 lock ($key, $timeout=6, $expiry=6, $rclass= '')
 Acquire an advisory lock on a key string. More...
 
 makeGlobalKey ()
 Make a global cache key. More...
 
 makeKey ()
 Make a cache key, scoped to this instance's keyspace. More...
 
 makeKeyInternal ($keyspace, $args)
 Construct a cache key. More...
 
 merge ($key, callable $callback, $exptime=0, $attempts=10, $flags=0)
 Merge changes into the existing cache value (possibly creating a new one) More...
 
 modifySimpleRelayEvent (array $event)
 Modify a cache update operation array for EventRelayer::notify() More...
 
 set ($key, $value, $exptime=0, $flags=0)
 Set an item. More...
 
 setDebug ($bool)
 
 setLogger (LoggerInterface $logger)
 
 setMulti (array $data, $exptime=0)
 Batch insertion. More...
 
 unlock ($key)
 Release an advisory lock on a key string. More...
 

Protected Member Functions

 doGet ($key, $flags=0)
 
- Protected Member Functions inherited from HashBagOStuff
 doGet ($key, $flags=0)
 
 expire ($key)
 
 hasKey ($key)
 Does this bag have a non-null value for the given key? More...
 
- Protected Member Functions inherited from BagOStuff
 cas ($casToken, $key, $value, $exptime=0)
 Check and set an item. More...
 
 convertExpiry ($exptime)
 Convert an optionally relative time to an absolute time. More...
 
 convertToRelative ($exptime)
 Convert an optionally absolute expiry time to a relative time. More...
 
 debug ($text)
 
 doGet ($key, $flags=0)
 
 getWithToken ($key, &$casToken, $flags=0)
 
 isInteger ($value)
 Check if a value is an integer. More...
 
 mergeFlagMaps (array $bags)
 Merge the flag maps of one or more BagOStuff objects into a "lowest common denominator" map. More...
 
 mergeViaCas ($key, $callback, $exptime=0, $attempts=10)
 
 mergeViaLock ($key, $callback, $exptime=0, $attempts=10, $flags=0)
 
 setLastError ($err)
 Set the "last error" registry. More...
 

Protected Attributes

BagOStuff $backend
 
- Protected Attributes inherited from HashBagOStuff
mixed[] $bag = []
 
integer $maxCacheKeys
 Max entries allowed. More...
 
- Protected Attributes inherited from BagOStuff
callback null $asyncHandler
 
integer[] $attrMap = []
 Map of (ATTR_* class constant => QOS_* class constant) More...
 
callable[] $busyCallbacks = []
 
string $keyspace = 'local'
 
integer $lastError = self::ERR_NONE
 ERR_* class constant. More...
 
array[] $locks = []
 Lock tracking. More...
 
LoggerInterface $logger
 
integer $syncTimeout
 Seconds. More...
 

Additional Inherited Members

- Public Attributes inherited from HashBagOStuff
const KEY_EXP = 1
 
const KEY_VAL = 0
 
- Public Attributes inherited from BagOStuff
const ERR_NO_RESPONSE = 1
 
const ERR_NONE = 0
 Possible values for getLastError() More...
 
const ERR_UNEXPECTED = 3
 
const ERR_UNREACHABLE = 2
 
const READ_LATEST = 1
 Bitfield constants for get()/getMulti() More...
 
const READ_VERIFIED = 2
 
const WRITE_CACHE_ONLY = 2
 
const WRITE_SYNC = 1
 Bitfield constants for set()/merge() More...
 
- Public Attributes inherited from IExpiringStore
const ATTR_EMULATION = 1
 
const ATTR_SYNCWRITES = 2
 
const QOS_EMULATION_SQL = 1
 
const QOS_SYNCWRITES_BE = 2
 
const QOS_SYNCWRITES_NONE = 1
 
const QOS_SYNCWRITES_QC = 3
 
const QOS_SYNCWRITES_SS = 4
 
const QOS_UNKNOWN = INF
 
const TTL_DAY = 86400
 
const TTL_HOUR = 3600
 
const TTL_INDEFINITE = 0
 
const TTL_MINUTE = 60
 
const TTL_MONTH = 2592000
 
const TTL_PROC_LONG = 30
 
const TTL_PROC_SHORT = 3
 
const TTL_WEEK = 604800
 
const TTL_YEAR = 31536000
 

Detailed Description

Wrapper around a BagOStuff that caches data in memory.

The differences between CachedBagOStuff and MultiWriteBagOStuff are:

  • CachedBagOStuff supports only one "backend".
  • There's a flag for writes to only go to the in-memory cache.
  • The in-memory cache is always updated.
  • Locks go to the backend cache (with MultiWriteBagOStuff, it would wind up going to the HashBagOStuff used for the in-memory cache).

Definition at line 36 of file CachedBagOStuff.php.

Constructor & Destructor Documentation

CachedBagOStuff::__construct ( BagOStuff  $backend,
  $params = [] 
)
Parameters
BagOStuff$backendPermanent backend to use
array$paramsParameters for HashBagOStuff

Definition at line 44 of file CachedBagOStuff.php.

References $backend, and $params.

Member Function Documentation

CachedBagOStuff::clearLastError ( )

Definition at line 101 of file CachedBagOStuff.php.

CachedBagOStuff::delete (   $key,
  $flags = 0 
)

Definition at line 70 of file CachedBagOStuff.php.

CachedBagOStuff::deleteObjectsExpiringBefore (   $date,
  $progressCallback = false 
)

Definition at line 92 of file CachedBagOStuff.php.

CachedBagOStuff::doGet (   $key,
  $flags = 0 
)
protected

Definition at line 53 of file CachedBagOStuff.php.

References $flags, $ret, HashBagOStuff\hasKey(), and set().

CachedBagOStuff::getLastError ( )

Definition at line 97 of file CachedBagOStuff.php.

CachedBagOStuff::lock (   $key,
  $timeout = 6,
  $expiry = 6,
  $rclass = '' 
)

Definition at line 84 of file CachedBagOStuff.php.

CachedBagOStuff::modifySimpleRelayEvent ( array  $event)

Definition at line 105 of file CachedBagOStuff.php.

CachedBagOStuff::set (   $key,
  $value,
  $exptime = 0,
  $flags = 0 
)

Definition at line 62 of file CachedBagOStuff.php.

References $flags, $value, and set.

Referenced by doGet(), and MediaWiki\Session\TestBagOStuff\setRawSession().

CachedBagOStuff::setDebug (   $bool)

Definition at line 79 of file CachedBagOStuff.php.

CachedBagOStuff::unlock (   $key)

Definition at line 88 of file CachedBagOStuff.php.

Member Data Documentation

BagOStuff CachedBagOStuff::$backend
protected

Definition at line 38 of file CachedBagOStuff.php.

Referenced by __construct().


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