forked from MirrorHub/synapse
Don't apply cache factor to event cache. (#7578)
This is already correctly done when we instansiate the cache, but wasn't when it got reloaded (which always happens at least once on startup).
This commit is contained in:
parent
9bac5d62b3
commit
eefc6b3a0d
1
changelog.d/7578.bugfix
Normal file
1
changelog.d/7578.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix cache config to not apply cache factor to event cache. Regression in v1.14.0rc1.
|
|
@ -81,6 +81,7 @@ class LruCache(object):
|
||||||
"""
|
"""
|
||||||
cache = cache_type()
|
cache = cache_type()
|
||||||
self.cache = cache # Used for introspection.
|
self.cache = cache # Used for introspection.
|
||||||
|
self.apply_cache_factor_from_config = apply_cache_factor_from_config
|
||||||
|
|
||||||
# Save the original max size, and apply the default size factor.
|
# Save the original max size, and apply the default size factor.
|
||||||
self._original_max_size = max_size
|
self._original_max_size = max_size
|
||||||
|
@ -294,6 +295,9 @@ class LruCache(object):
|
||||||
Returns:
|
Returns:
|
||||||
bool: Whether the cache changed size or not.
|
bool: Whether the cache changed size or not.
|
||||||
"""
|
"""
|
||||||
|
if not self.apply_cache_factor_from_config:
|
||||||
|
return False
|
||||||
|
|
||||||
new_size = int(self._original_max_size * factor)
|
new_size = int(self._original_max_size * factor)
|
||||||
if new_size != self.max_size:
|
if new_size != self.max_size:
|
||||||
self.max_size = new_size
|
self.max_size = new_size
|
||||||
|
|
|
@ -125,3 +125,19 @@ class CacheConfigTests(TestCase):
|
||||||
cache = LruCache(100)
|
cache = LruCache(100)
|
||||||
add_resizable_cache("foo", cache_resize_callback=cache.set_cache_factor)
|
add_resizable_cache("foo", cache_resize_callback=cache.set_cache_factor)
|
||||||
self.assertEqual(cache.max_size, 150)
|
self.assertEqual(cache.max_size, 150)
|
||||||
|
|
||||||
|
def test_apply_cache_factor_from_config(self):
|
||||||
|
"""Caches can disable applying cache factor updates, mainly used by
|
||||||
|
event cache size.
|
||||||
|
"""
|
||||||
|
|
||||||
|
config = {"caches": {"event_cache_size": "10k"}}
|
||||||
|
t = TestConfig()
|
||||||
|
t.read_config(config, config_dir_path="", data_dir_path="")
|
||||||
|
|
||||||
|
cache = LruCache(
|
||||||
|
max_size=t.caches.event_cache_size, apply_cache_factor_from_config=False,
|
||||||
|
)
|
||||||
|
add_resizable_cache("event_cache", cache_resize_callback=cache.set_cache_factor)
|
||||||
|
|
||||||
|
self.assertEqual(cache.max_size, 10240)
|
||||||
|
|
Loading…
Reference in a new issue