MediaWiki master
|
A SettingsSource
that can be cached.
More...
Inherits MediaWiki\Settings\Source\SettingsSource.
Inherited by MediaWiki\Settings\Source\EtcdSource, and MediaWiki\Settings\Source\FileSource.
Public Member Functions | |
allowsStaleLoad () | |
Allow the caching layer to attempt to return stale results in the event that loading from the original source fails. | |
getExpiryTtl () | |
Returns the cache TTL (in seconds) for this source. | |
getExpiryWeight () | |
Coefficient used in determining early expiration of cached settings to avoid stampedes. | |
getHashKey () | |
Returns a deterministically computed key for use in caching settings from this source. | |
Public Member Functions inherited from MediaWiki\Settings\Source\SettingsSource | |
load () | |
Loads and returns all settings from this source as an associative array. | |
A SettingsSource
that can be cached.
It must return a unique (enough) and deterministic hash key for cache indexing.
Definition at line 14 of file CacheableSource.php.
MediaWiki\Settings\Cache\CacheableSource::allowsStaleLoad | ( | ) |
Allow the caching layer to attempt to return stale results in the event that loading from the original source fails.
Note that allowing stale results will result in cache items being stored indefinitely regardless of the getExpiryTtl()
value, and since there is currently no pruning of cache items, it is advised that sources allowing stale results also implement an immutable getHashKey()
based only on constructor arguments.
Implemented in MediaWiki\Settings\Source\EtcdSource, and MediaWiki\Settings\Source\FileSource.
MediaWiki\Settings\Cache\CacheableSource::getExpiryTtl | ( | ) |
Returns the cache TTL (in seconds) for this source.
Implemented in MediaWiki\Settings\Source\EtcdSource, and MediaWiki\Settings\Source\FileSource.
MediaWiki\Settings\Cache\CacheableSource::getExpiryWeight | ( | ) |
Coefficient used in determining early expiration of cached settings to avoid stampedes.
Increasing this value will cause the random early election to happen by a larger margin of lead time before normal expiry, relative to the cache value's generation duration. Conversely, returning a lesser value will narrow the margin of lead time, making the cache hold items for slightly longer but with more likelihood that concurrent regenerations and set overwrites will occur. Returning 0
will effectively disable early expiration, and by extension disable stampede mitigation altogether.
A greater value may be suitable if a source has a highly variable generation duration, but most implementations should simply return 1.0
.
https://cseweb.ucsd.edu/~avattani/papers/cache_stampede.pdf Optimal Probabilistic Cache Stampede Prevention Vattani, A.; Chierichetti, F.; Lowenstein, K. (2015), "Optimal Probabilistic Cache Stampede Prevention" (PDF), Proceedings of the VLDB Endowment, VLDB, 8 (8): 886–897, doi:10.14778/2757807.2757813, ISSN 2150-8097 https://cseweb.ucsd.edu/~avattani/papers/cache_stampede.pdf float
Implemented in MediaWiki\Settings\Source\EtcdSource, and MediaWiki\Settings\Source\FileSource.
MediaWiki\Settings\Cache\CacheableSource::getHashKey | ( | ) |
Returns a deterministically computed key for use in caching settings from this source.
Implemented in MediaWiki\Settings\Source\EtcdSource, and MediaWiki\Settings\Source\FileSource.