summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2017-05-17 10:03:09 +0100
committerErik Johnston <erik@matrix.org>2017-05-17 10:03:09 +0100
commit85e8092ccab2b7a479b71225fc24e69a2f58f980 (patch)
tree0dbaac31d7e6dfa24a3657abe8b9e0490287f06a
parentShort circuit when we have delta ids (diff)
downloadsynapse-85e8092ccab2b7a479b71225fc24e69a2f58f980.tar.xz
Comment
-rw-r--r--synapse/storage/roommember.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/synapse/storage/roommember.py b/synapse/storage/roommember.py
index a5df1d46b4..0829ae5bee 100644
--- a/synapse/storage/roommember.py
+++ b/synapse/storage/roommember.py
@@ -420,7 +420,12 @@ class RoomMemberStore(SQLBaseStore):
             for key, e_id in current_state_ids.iteritems()
             if key[0] == EventTypes.Member
         ]
+
         if context is not None:
+            # If we have a context with a delta from a previous state group,
+            # check if we also have the result from the previous group in cache.
+            # If we do then we can reuse that result and simply update it with
+            # any membership changes in `delta_ids`
             if context.prev_group and context.delta_ids:
                 prev_res = self._get_joined_users_from_context.cache.get(
                     (room_id, context.prev_group), None