Introduced in I0667a02612526d8ddfd91d5de48b6faa78bd1ab5 (in 2019) and used for consistency by default in BagOStuff::set(), even for the 99% of values that don't need segmentation. The method was removed from use in I830c78a50efd1ba83fbe2aa39c1, due to the overhead of SerializedValueContainer being undesirable, so there is no longer a use case for it. If a value doesn't need segmentation, it shouldn't be wrapped in SerializedValueContainer. See https://codesearch.wmcloud.org/search/?q=SerializedValueContainer%3A%3AnewUnified&files=&excludeFiles=&repos= Bug: T344521 Change-Id: Id1c283201cd42c4eabac8ef4d949329959016b18 |
||
|---|---|---|
| .. | ||
| serialized | ||
| utils | ||
| wancache | ||
| APCUBagOStuff.php | ||
| BagOStuff.php | ||
| CachedBagOStuff.php | ||
| EmptyBagOStuff.php | ||
| HashBagOStuff.php | ||
| IStoreKeyEncoder.php | ||
| MediumSpecificBagOStuff.php | ||
| MemcachedBagOStuff.php | ||
| MemcachedPeclBagOStuff.php | ||
| MemcachedPhpBagOStuff.php | ||
| MultiWriteBagOStuff.php | ||
| README.md | ||
| RedisBagOStuff.php | ||
| ReplicatedBagOStuff.php | ||
| RESTBagOStuff.php | ||
| WinCacheBagOStuff.php | ||
wikimedia/objectcache
Statistics
Sent to StatsD under MediaWiki's namespace.
WANObjectCache
The default WANObjectCache provided by MediaWikiServices disables these
statistics in processes where $wgCommandLineMode is true.
wanobjectcache.{kClass}.{cache_action_and_result}
Upon cache access via WANObjectCache::getWithSetCallback(), this measures the total time spent
in this method from start to end for all cases, except process-cache hits.
See also subsets of this measure:
-
wanobjectcache.{kClass}.regen_walltime: If regenerated, just the portion of time to regenerate the value. -
wanobjectcache.{kClass}.regen_set_delay: If regenerated and approved for storing, the time from start to right before storing. -
Type: Measure (in milliseconds).
-
Variable
kClass: The first part of your cache key. -
Variable
result: One of:"hit.good": A non-expired value was returned (and call did not get chosen for pre-emptive refresh)."hit.refresh": A non-expired value was returned (and call was chosen for a pre-emptive refresh, and an async refresh was scheduled)."hit.volatile": A value was found that was generated and stored less than 0.1s ago, and returned as-is despite appearing to also be expired already. This amount of time is considered negligible in terms of clock accuracy, and by random chance we usually decide to treat these as a cache hit (seeRECENT_SET_HIGH_MS)."hit.stale": An expired value was found, but we are within the allowed stale period specified by alockTSEoption, and the current request did not get the regeneration lock. The stale value is returned as-is."miss.compute": A new value was computed by the callback and returned. No non-expired value was found, and if this key needed a regeneration lock, we got the lock."miss.busy": A busy value was produced by abusyValuecallback and returned. No non-expired value was found, and we tried to use a regeneration lock (per thebusyValueoption), but the current request did not get the lock."renew.compute": Artificial demand from an async refresh, led to a new value being computed by the callback. These are like"miss.compute", but in response to"hit.refresh"."renew.busy": Artificial demand from an async refresh failed to produce a value. The key used thebusyValueoption, and could not get a regeneration lock.
wanobjectcache.{kClass}.regen_walltime
Upon cache update due to a cache miss or async refresh, this measures the time spent in the regeneration callback when computing a new value.
- Type: Measure (in milliseconds).
- Variable
kClass: The first part of your cache key.
wanobjectcache.{kClass}.regen_set_delay
Upon cache update due to a cache miss or async refresh, this measures the time spent in
WANObjectCache::getWithSetCallback(), from the start of the method to right after
the new value has been computed by the callback.
This essentially measures the whole method (including retrieval of any old value, validation, any regeneration locks, and the callback), except for the time spent in sending the value to the backend store.
- Type: Measure (in milliseconds).
- Variable
kClass: The first part of your cache key.
wanobjectcache.{kClass}.ck_touch.{result}
Call counter from WANObjectCache::touchCheckKey().
- Type: Counter.
- Variable
kClass: The first part of your cache key. - Variable
result: One of"ok"or"error".
wanobjectcache.{kClass}.ck_reset.{result}
Call counter from WANObjectCache::resetCheckKey().
- Type: Counter.
- Variable
kClass: The first part of your cache key. - Variable
result: One of"ok"or"error".
wanobjectcache.{kClass}.delete.{result}
Call counter from WANObjectCache::delete().
- Type: Counter.
- Variable
kClass: The first part of your cache key. - Variable
result: One of"ok"or"error".