Load events for state group seperately

This commit is contained in:
Erik Johnston 2015-05-13 11:13:31 +01:00
parent 80fd2b574c
commit 409bcc76bd
2 changed files with 11 additions and 5 deletions

View File

@ -867,9 +867,9 @@ class SQLBaseStore(object):
return self.runInteraction("_simple_max_id", func) return self.runInteraction("_simple_max_id", func)
def _get_events(self, event_ids, check_redacted=True, def _get_events(self, event_ids, check_redacted=True,
get_prev_content=False): get_prev_content=False, desc="_get_events"):
return self.runInteraction( return self.runInteraction(
"_get_events", self._get_events_txn, event_ids, desc, self._get_events_txn, event_ids,
check_redacted=check_redacted, get_prev_content=get_prev_content, check_redacted=check_redacted, get_prev_content=get_prev_content,
) )

View File

@ -43,6 +43,7 @@ class StateStore(SQLBaseStore):
* `state_groups_state`: Maps state group to state events. * `state_groups_state`: Maps state group to state events.
""" """
@defer.inlineCallbacks
def get_state_groups(self, event_ids): def get_state_groups(self, event_ids):
""" Get the state groups for the given list of event_ids """ Get the state groups for the given list of event_ids
@ -71,17 +72,22 @@ class StateStore(SQLBaseStore):
retcol="event_id", retcol="event_id",
) )
state = self._get_events_txn(txn, state_ids) # state = self._get_events_txn(txn, state_ids)
res[group] = state res[group] = state_ids
return res return res
return self.runInteraction( states = yield self.runInteraction(
"get_state_groups", "get_state_groups",
f, f,
) )
for vals in states.values():
vals[:] = yield self._get_events(vals, desc="_get_state_groups_ev")
defer.returnValue(states)
def _store_state_groups_txn(self, txn, event, context): def _store_state_groups_txn(self, txn, event, context):
if context.current_state is None: if context.current_state is None:
return return