summary refs log tree commit diff
path: root/synapse/util/caches/dictionary_cache.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Make get_state_groups_from_groups faster.Erik Johnston2017-05-171-11/+46
| | | | | | | | | Most of the time was spent copying a dict to filter out sentinel values that indicated that keys did not exist in the dict. The sentinel values were added to ensure that we cached the non-existence of keys. By updating DictionaryCache to keep track of which keys were known to not exist itself we can remove a dictionary copy.
* Speed up cache size calculationErik Johnston2017-01-171-2/+4
| | | | | | | | | | | Instead of calculating the size of the cache repeatedly, which can take a long time now that it can use a callback, instead cache the size and update that on insertion and deletion. This requires changing the cache descriptors to have two caches, one for pending deferreds and the other for the actual values. There's no reason to evict from the pending deferreds as they won't take up any more memory.
* Change CacheMetrics to be quickerErik Johnston2016-06-031-4/+4
| | | | | | We change it so that each cache has an individual CacheMetric, instead of having one global CacheMetric. This means that when a cache tries to increment a counter it does not need to go through so many indirections.
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Wire up the dictionarycache to the metricsErik Johnston2015-08-121-31/+25
|
* Move all the caches into their own package, synapse.util.cachesErik Johnston2015-08-111-0/+109