summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2018-07-13 15:26:10 +0100
committerErik Johnston <erik@matrix.org>2018-07-13 15:26:10 +0100
commit77b692e65dfe5da79e9f69f4a24bde1c768a998c (patch)
tree4cc0d7b1db60fbdbab3054df85636e5f8728d730
parenttypo (diff)
downloadsynapse-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.py9
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)