diff options
author | Erik Johnston <erik@matrix.org> | 2018-07-13 15:26:10 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2018-07-13 15:26:10 +0100 |
commit | 77b692e65dfe5da79e9f69f4a24bde1c768a998c (patch) | |
tree | 4cc0d7b1db60fbdbab3054df85636e5f8728d730 | |
parent | typo (diff) | |
download | synapse-77b692e65dfe5da79e9f69f4a24bde1c768a998c.tar.xz |
Don't return unknown entities in get_entities_changed
The stream cache keeps track of all entities that have changed since a particular stream position, so get_entities_changed does not need to return unknown entites when given a larger stream position. This makes it consistent with the behaviour of has_entity_changed.
-rw-r--r-- | synapse/util/caches/stream_change_cache.py | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/synapse/util/caches/stream_change_cache.py b/synapse/util/caches/stream_change_cache.py index a1f8ff8f10..258655349b 100644 --- a/synapse/util/caches/stream_change_cache.py +++ b/synapse/util/caches/stream_change_cache.py @@ -74,19 +74,12 @@ class StreamChangeCache(object): assert type(stream_pos) is int if stream_pos >= self._earliest_known_stream_pos: - changed_entities = { + result = { self._cache[k] for k in self._cache.islice( start=self._cache.bisect_right(stream_pos), ) } - # we need to include entities which we don't know about, as well as - # those which are known to have changed since the stream pos. - result = { - e for e in entities - if e in changed_entities or e not in self._entity_to_key - } - self.metrics.inc_hits() else: result = set(entities) |