diff options
author | Erik Johnston <erik@matrix.org> | 2017-05-08 16:06:17 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2017-05-08 16:06:17 +0100 |
commit | ffad4fe35be3baba5b2fffaa4e9b31f3008d09af (patch) | |
tree | 726208f0cb47cbd81a1fd5009351ce4b7435f57b /synapse/util/caches | |
parent | Increase client_ip cache size (diff) | |
download | synapse-ffad4fe35be3baba5b2fffaa4e9b31f3008d09af.tar.xz |
Don't update event cache hit ratio from get_joined_users
Otherwise the hit ration of plain get_events gets completely skewed by calls to get_joined_users* functions.
Diffstat (limited to 'synapse/util/caches')
-rw-r--r-- | synapse/util/caches/descriptors.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/synapse/util/caches/descriptors.py b/synapse/util/caches/descriptors.py index aa182eeac7..48dcbafeef 100644 --- a/synapse/util/caches/descriptors.py +++ b/synapse/util/caches/descriptors.py @@ -96,7 +96,7 @@ class Cache(object): "Cache objects can only be accessed from the main thread" ) - def get(self, key, default=_CacheSentinel, callback=None): + def get(self, key, default=_CacheSentinel, callback=None, update_metrics=True): """Looks the key up in the caches. Args: @@ -104,6 +104,7 @@ class Cache(object): default: What is returned if key is not in the caches. If not specified then function throws KeyError instead callback(fn): Gets called when the entry in the cache is invalidated + update_metrics (bool): whether to update the cache hit rate metrics Returns: Either a Deferred or the raw result @@ -113,7 +114,8 @@ class Cache(object): if val is not _CacheSentinel: if val.sequence == self.sequence: val.callbacks.update(callbacks) - self.metrics.inc_hits() + if update_metrics: + self.metrics.inc_hits() return val.deferred val = self.cache.get(key, _CacheSentinel, callbacks=callbacks) @@ -121,7 +123,8 @@ class Cache(object): self.metrics.inc_hits() return val - self.metrics.inc_misses() + if update_metrics: + self.metrics.inc_misses() if default is _CacheSentinel: raise KeyError() |