Reapply "Reapply "Revert LruCache CacheManager changes for now""
This reverts commit e36c6f7803.
This commit is contained in:
@@ -125,7 +125,8 @@ class SyncRestServlet(RestServlet):
|
||||
self._json_filter_cache: LruCache[str, bool] = LruCache(
|
||||
max_size=1000,
|
||||
cache_name="sync_valid_filter",
|
||||
cache_manager=hs.get_cache_manager(),
|
||||
# TODO
|
||||
# cache_manager=hs.get_cache_manager(),
|
||||
)
|
||||
|
||||
# Ratelimiter for presence updates, keyed by requester.
|
||||
|
||||
@@ -436,7 +436,8 @@ class ClientIpWorkerStore(ClientIpBackgroundUpdateStore, MonthlyActiveUsersWorke
|
||||
self.client_ip_last_seen = LruCache[Tuple[str, str, str], int](
|
||||
max_size=50000,
|
||||
cache_name="client_ip_last_seen",
|
||||
cache_manager=hs.get_cache_manager(),
|
||||
# TODO
|
||||
# cache_manager=hs.get_cache_manager(),
|
||||
)
|
||||
|
||||
if hs.config.worker.run_background_tasks and self.user_ips_max_age:
|
||||
|
||||
@@ -1780,7 +1780,8 @@ class DeviceStore(DeviceWorkerStore, DeviceBackgroundUpdateStore):
|
||||
LruCache(
|
||||
max_size=10000,
|
||||
cache_name="device_id_exists",
|
||||
cache_manager=hs.get_cache_manager(),
|
||||
# TODO
|
||||
# cache_manager=hs.get_cache_manager(),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -147,7 +147,8 @@ class EventFederationWorkerStore(SignatureWorkerStore, EventsWorkerStore, SQLBas
|
||||
self._event_auth_cache: LruCache[str, List[Tuple[str, int]]] = LruCache(
|
||||
500000,
|
||||
cache_name="_event_auth_cache",
|
||||
cache_manager=hs.get_cache_manager(),
|
||||
# TODO
|
||||
# cache_manager=hs.get_cache_manager(),
|
||||
size_callback=len,
|
||||
)
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ from twisted.internet import defer
|
||||
from twisted.python.failure import Failure
|
||||
|
||||
from synapse.util.async_helpers import ObservableDeferred
|
||||
from synapse.util.caches import CacheManager
|
||||
from synapse.util.caches.lrucache import LruCache
|
||||
from synapse.util.caches.treecache import TreeCache, iterate_tree_cache_entry
|
||||
|
||||
@@ -81,7 +80,6 @@ class DeferredCache(Generic[KT, VT]):
|
||||
def __init__(
|
||||
self,
|
||||
name: str,
|
||||
cache_manager: CacheManager,
|
||||
max_entries: int = 1000,
|
||||
tree: bool = False,
|
||||
iterable: bool = False,
|
||||
@@ -91,7 +89,6 @@ class DeferredCache(Generic[KT, VT]):
|
||||
"""
|
||||
Args:
|
||||
name: The name of the cache
|
||||
cache_manager: The cache manager to handle metrics
|
||||
max_entries: Maximum amount of entries that the cache will hold
|
||||
tree: Use a TreeCache instead of a dict as the underlying cache type
|
||||
iterable: If True, count each item in the cached object as an entry,
|
||||
@@ -117,7 +114,6 @@ class DeferredCache(Generic[KT, VT]):
|
||||
self.cache: LruCache[KT, VT] = LruCache(
|
||||
max_size=max_entries,
|
||||
cache_name=name,
|
||||
cache_manager=cache_manager,
|
||||
cache_type=cache_type,
|
||||
size_callback=(
|
||||
(lambda d: len(cast(Sized, d)) or 1)
|
||||
|
||||
@@ -51,7 +51,7 @@ from twisted.internet.interfaces import IReactorTime
|
||||
from synapse.config import cache as cache_config
|
||||
from synapse.metrics.background_process_metrics import wrap_as_background_process
|
||||
from synapse.util import Clock, caches
|
||||
from synapse.util.caches import CacheManager, CacheMetric, EvictionReason
|
||||
from synapse.util.caches import CacheMetric, EvictionReason
|
||||
from synapse.util.caches.treecache import (
|
||||
TreeCache,
|
||||
iterate_tree_cache_entry,
|
||||
@@ -379,44 +379,11 @@ class LruCache(Generic[KT, VT]):
|
||||
If cache_type=TreeCache, all keys must be tuples.
|
||||
"""
|
||||
|
||||
# If you're providing in the `cache_name`, then you must provide the `cache_manager`
|
||||
@overload
|
||||
def __init__(
|
||||
self,
|
||||
max_size: int,
|
||||
*,
|
||||
cache_name: str,
|
||||
cache_manager: CacheManager,
|
||||
metrics_collection_callback: Optional[Callable[[], None]] = None,
|
||||
cache_type: Type[Union[dict, TreeCache]] = dict,
|
||||
size_callback: Optional[Callable[[VT], int]] = None,
|
||||
apply_cache_factor_from_config: bool = True,
|
||||
clock: Optional[Clock] = None,
|
||||
prune_unread_entries: bool = True,
|
||||
extra_index_cb: Optional[Callable[[KT, VT], KT]] = None,
|
||||
): ...
|
||||
|
||||
# If you're *not* providing in the `cache_name`, then you shouldn't provide the
|
||||
# `cache_manager` or the `metrics_collection_callback`
|
||||
@overload
|
||||
def __init__(
|
||||
self,
|
||||
max_size: int,
|
||||
*,
|
||||
cache_type: Type[Union[dict, TreeCache]] = dict,
|
||||
size_callback: Optional[Callable[[VT], int]] = None,
|
||||
apply_cache_factor_from_config: bool = True,
|
||||
clock: Optional[Clock] = None,
|
||||
prune_unread_entries: bool = True,
|
||||
extra_index_cb: Optional[Callable[[KT, VT], KT]] = None,
|
||||
): ...
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
max_size: int,
|
||||
*,
|
||||
cache_name: Optional[str] = None,
|
||||
cache_manager: Optional[CacheManager] = None,
|
||||
metrics_collection_callback: Optional[Callable[[], None]] = None,
|
||||
cache_type: Type[Union[dict, TreeCache]] = dict,
|
||||
size_callback: Optional[Callable[[VT], int]] = None,
|
||||
@@ -432,9 +399,6 @@ class LruCache(Generic[KT, VT]):
|
||||
cache_name: The name of this cache, for the prometheus metrics. If unset,
|
||||
no metrics will be reported on this cache.
|
||||
|
||||
cache_manager: The cache manager to handle metrics. If unset, no metrics will be
|
||||
reported on this cache.
|
||||
|
||||
Ignored if `cache_name` is `None`.
|
||||
|
||||
metrics_collection_callback:
|
||||
@@ -499,15 +463,17 @@ class LruCache(Generic[KT, VT]):
|
||||
# do yet when we get resized.
|
||||
self._on_resize: Optional[Callable[[], None]] = None
|
||||
|
||||
if cache_name is not None:
|
||||
metrics: Optional[CacheMetric] = cache_manager.register_cache(
|
||||
"lru_cache",
|
||||
cache_name,
|
||||
self,
|
||||
collect_callback=metrics_collection_callback,
|
||||
)
|
||||
else:
|
||||
metrics = None
|
||||
# TODO
|
||||
# if cache_name is not None:
|
||||
# metrics: Optional[CacheMetric] = cache_manager.register_cache(
|
||||
# "lru_cache",
|
||||
# cache_name,
|
||||
# self,
|
||||
# collect_callback=metrics_collection_callback,
|
||||
# )
|
||||
# else:
|
||||
# metrics = None
|
||||
metrics: Optional[CacheMetric] = None
|
||||
|
||||
# this is exposed for access from outside this class
|
||||
self.metrics = metrics
|
||||
|
||||
@@ -99,8 +99,6 @@ class LruCacheTestCase(unittest.HomeserverTestCase):
|
||||
cache: LruCache = LruCache(
|
||||
10,
|
||||
cache_name="mycache",
|
||||
# TODO
|
||||
# cache_manager=TODO
|
||||
)
|
||||
self.assertEqual(cache.max_size, 100)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user