1
0

Reapply "Reapply "Revert LruCache CacheManager changes for now""

This reverts commit e36c6f7803.
This commit is contained in:
Eric Eastwood
2025-05-21 13:13:03 -05:00
parent 5f5b3496f9
commit d4d59a49b3
7 changed files with 20 additions and 56 deletions
+2 -1
View File
@@ -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.
+2 -1
View File
@@ -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:
+2 -1
View File
@@ -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,
)
-4
View File
@@ -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)
+12 -46
View File
@@ -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
-2
View File
@@ -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)