summary refs log tree commit diff
path: root/synapse/storage/state.py
diff options
context:
space:
mode:
authorErik Johnston <erikj@jki.re>2017-05-16 15:50:11 +0100
committerGitHub <noreply@github.com>2017-05-16 15:50:11 +0100
commitb8492b6c2ff93ff2345fb3017cbe6f386bb273b7 (patch)
tree380db9f4982ae762dc7d0a4bfc932cdfdf9ccd5c /synapse/storage/state.py
parentMerge pull request #2218 from matrix-org/rav/event_search_index (diff)
parentRemove spurious merge artifacts (diff)
downloadsynapse-b8492b6c2ff93ff2345fb3017cbe6f386bb273b7.tar.xz
Merge pull request #2224 from matrix-org/erikj/prefill_state
Prefill state caches
Diffstat (limited to 'synapse/storage/state.py')
-rw-r--r--synapse/storage/state.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/synapse/storage/state.py b/synapse/storage/state.py
index a16afa8df5..85acf2ad1e 100644
--- a/synapse/storage/state.py
+++ b/synapse/storage/state.py
@@ -227,6 +227,18 @@ class StateStore(SQLBaseStore):
                     ],
                 )
 
+            # Prefill the state group cache with this group.
+            # It's fine to use the sequence like this as the state group map
+            # is immutable. (If the map wasn't immutable then this prefill could
+            # race with another update)
+            txn.call_after(
+                self._state_group_cache.update,
+                self._state_group_cache.sequence,
+                key=context.state_group,
+                value=dict(context.current_state_ids),
+                full=True,
+            )
+
         self._simple_insert_many_txn(
             txn,
             table="event_to_state_groups",