summary refs log tree commit diff
path: root/synapse/storage/events.py
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2015-05-21 15:14:26 +0100
committerMark Haines <mark.haines@matrix.org>2015-05-21 16:41:39 +0100
commit53447e9cd380262c16677cfddeda1d75aeebe38c (patch)
treecf563422554aa7308b9df7ee9f0b13fd3a88b33d /synapse/storage/events.py
parentAdd a cache for get_current_state with state_key (diff)
downloadsynapse-53447e9cd380262c16677cfddeda1d75aeebe38c.tar.xz
Add caches for things requested by the pushers
Diffstat (limited to 'synapse/storage/events.py')
-rw-r--r--synapse/storage/events.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/synapse/storage/events.py b/synapse/storage/events.py
index 52074b4cc8..1304219e86 100644
--- a/synapse/storage/events.py
+++ b/synapse/storage/events.py
@@ -108,6 +108,10 @@ class EventsStore(SQLBaseStore):
         # key, we *want* to update the `current_state_events` table
         if current_state:
             txn.call_after(self.get_current_state_for_key.invalidate_all)
+            txn.call_after(self.get_rooms_for_user.invalidate_all)
+            txn.call_after(self.get_users_in_room.invalidate, event.room_id)
+            txn.call_after(self.get_joined_hosts_for_room.invalidate, event.room_id)
+            txn.call_after(self.get_room_name_and_aliases, event.room_id)
 
             self._simple_delete_txn(
                 txn,
@@ -116,13 +120,6 @@ class EventsStore(SQLBaseStore):
             )
 
             for s in current_state:
-                if s.type == EventTypes.Member:
-                    txn.call_after(
-                        self.get_rooms_for_user.invalidate, s.state_key
-                    )
-                    txn.call_after(
-                        self.get_joined_hosts_for_room.invalidate, s.room_id
-                    )
                 self._simple_insert_txn(
                     txn,
                     "current_state_events",
@@ -341,6 +338,14 @@ class EventsStore(SQLBaseStore):
                     self.get_current_state_for_key.invalidate,
                     event.room_id, event.type, event.state_key
                 )
+
+                if (event.type == EventTypes.Name
+                        or event.type == EventTypes.Aliases):
+                    txn.call_after(
+                        self.get_room_name_and_aliases.invalidate,
+                        event.room_id
+                    )
+
                 self._simple_upsert_txn(
                     txn,
                     "current_state_events",