diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2022-11-10 15:33:34 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-10 15:33:34 -0500 |
commit | 13ca8bb2fc05d338ccf62e6f8d1cbf5021d935ba (patch) | |
tree | b27c7ac7eeeb4be247cca6cb28512068b786781d /synapse/util/caches/stream_change_cache.py | |
parent | Fix PostgreSQL sometimes using table scans for `event_search` (#14409) (diff) | |
download | synapse-13ca8bb2fc05d338ccf62e6f8d1cbf5021d935ba.tar.xz |
Remove duplicated code to evict entries. (#14410)
This code was factored out to a method, but also left in-place. Calling this twice in a row makes no sense: the first call will reduce the size appropriately, but the loop will immediately exit since the cache size was already reduced.
Diffstat (limited to 'synapse/util/caches/stream_change_cache.py')
-rw-r--r-- | synapse/util/caches/stream_change_cache.py | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/synapse/util/caches/stream_change_cache.py b/synapse/util/caches/stream_change_cache.py index 330709b8b7..666f4b6895 100644 --- a/synapse/util/caches/stream_change_cache.py +++ b/synapse/util/caches/stream_change_cache.py @@ -72,7 +72,7 @@ class StreamChangeCache: items from the cache. Returns: - bool: Whether the cache changed size or not. + Whether the cache changed size or not. """ new_size = math.floor(self._original_max_size * factor) if new_size != self._max_size: @@ -188,14 +188,8 @@ class StreamChangeCache: self._entity_to_key[entity] = stream_pos self._evict() - # if the cache is too big, remove entries - while len(self._cache) > self._max_size: - k, r = self._cache.popitem(0) - self._earliest_known_stream_pos = max(k, self._earliest_known_stream_pos) - for entity in r: - del self._entity_to_key[entity] - def _evict(self) -> None: + # if the cache is too big, remove entries while len(self._cache) > self._max_size: k, r = self._cache.popitem(0) self._earliest_known_stream_pos = max(k, self._earliest_known_stream_pos) @@ -203,7 +197,6 @@ class StreamChangeCache: self._entity_to_key.pop(entity, None) def get_max_pos_of_last_change(self, entity: EntityType) -> int: - """Returns an upper bound of the stream id of the last change to an entity. """ |