mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-19 06:33:52 +01:00
Only get cached state from context in persist_event
We don't want to bother pulling out the current state from the DB since until we know we have to. Checking the context for state is just an optimisation.
This commit is contained in:
parent
a646bdc670
commit
50c60e5fad
2 changed files with 16 additions and 1 deletions
|
@ -163,6 +163,9 @@ class EventContext(object):
|
|||
context._prev_state_id = input["prev_state_id"]
|
||||
context._event_type = input["event_type"]
|
||||
context._event_state_key = input["event_state_key"]
|
||||
|
||||
context._current_state_ids = None
|
||||
context._prev_state_ids = None
|
||||
context._fetching_state_deferred = None
|
||||
|
||||
context.state_group = input["state_group"]
|
||||
|
@ -214,6 +217,16 @@ class EventContext(object):
|
|||
|
||||
defer.returnValue(self._prev_state_ids)
|
||||
|
||||
def get_cached_current_state_ids(self):
|
||||
"""Gets the current state IDs if we have them already cached.
|
||||
|
||||
Returns:
|
||||
dict[(str, str), str]|None: Returns None if state_group
|
||||
is None, which happens when the associated event is an outlier.
|
||||
"""
|
||||
|
||||
return self._current_state_ids
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def _fill_out_state(self, store):
|
||||
"""Called to populate the _current_state_ids and _prev_state_ids
|
||||
|
|
|
@ -549,7 +549,9 @@ class EventsStore(EventsWorkerStore):
|
|||
if ctx.state_group in state_groups_map:
|
||||
continue
|
||||
|
||||
state_groups_map[ctx.state_group] = yield ctx.get_current_state_ids(self)
|
||||
current_state_ids = ctx.get_cached_current_state_ids()
|
||||
if current_state_ids is not None:
|
||||
state_groups_map[ctx.state_group] = current_state_ids
|
||||
|
||||
# We need to map the event_ids to their state groups. First, let's
|
||||
# check if the event is one we're persisting, in which case we can
|
||||
|
|
Loading…
Reference in a new issue