diff options
author | Erik Johnston <erik@matrix.org> | 2016-03-01 13:30:15 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-03-01 13:30:15 +0000 |
commit | 374f9b2f073a8d7832916cf1b17d6aacba235066 (patch) | |
tree | 7019792a4c2df08df300877014ba58d0e04c9e91 /synapse/util | |
parent | Move cache size fiddling to descriptors only. Fix tests (diff) | |
download | synapse-374f9b2f073a8d7832916cf1b17d6aacba235066.tar.xz |
Limit stream change cache size too
Diffstat (limited to 'synapse/util')
-rw-r--r-- | synapse/util/caches/stream_change_cache.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/synapse/util/caches/stream_change_cache.py b/synapse/util/caches/stream_change_cache.py index 970488a19c..a1aec7aa55 100644 --- a/synapse/util/caches/stream_change_cache.py +++ b/synapse/util/caches/stream_change_cache.py @@ -18,11 +18,15 @@ from synapse.util.caches import cache_counter, caches_by_name from blist import sorteddict import logging +import os logger = logging.getLogger(__name__) +CACHE_SIZE_FACTOR = float(os.environ.get("SYNAPSE_CACHE_FACTOR", 0.1)) + + class StreamChangeCache(object): """Keeps track of the stream positions of the latest change in a set of entities. @@ -33,7 +37,7 @@ class StreamChangeCache(object): old then the cache will simply return all given entities. """ def __init__(self, name, current_stream_pos, max_size=10000, prefilled_cache={}): - self._max_size = max_size + self._max_size = int(max_size * CACHE_SIZE_FACTOR) self._entity_to_key = {} self._cache = sorteddict() self._earliest_known_stream_pos = current_stream_pos |