Move Measure calls into `resolve_events_with_store`

pull/8420/head
Richard van der Hoff 2020-09-29 13:07:09 +01:00
parent ba700074c6
commit 8412c08a87
1 changed files with 31 additions and 32 deletions

View File

@ -448,14 +448,13 @@ class StateHandler:
state_map = {ev.event_id: ev for st in state_sets for ev in st} state_map = {ev.event_id: ev for st in state_sets for ev in st}
with Measure(self.clock, "state._resolve_events"): new_state = await self._state_resolution_handler.resolve_events_with_store(
new_state = await self._state_resolution_handler.resolve_events_with_store( event.room_id,
event.room_id, room_version,
room_version, state_set_ids,
state_set_ids, event_map=state_map,
event_map=state_map, state_res_store=StateResolutionStore(self.store),
state_res_store=StateResolutionStore(self.store), )
)
return {key: state_map[ev_id] for key, ev_id in new_state.items()} return {key: state_map[ev_id] for key, ev_id in new_state.items()}
@ -529,14 +528,13 @@ class StateResolutionHandler:
state_groups_histogram.observe(len(state_groups_ids)) state_groups_histogram.observe(len(state_groups_ids))
with Measure(self.clock, "state._resolve_events"): new_state = await self.resolve_events_with_store(
new_state = await self.resolve_events_with_store( room_id,
room_id, room_version,
room_version, list(state_groups_ids.values()),
list(state_groups_ids.values()), event_map=event_map,
event_map=event_map, state_res_store=state_res_store,
state_res_store=state_res_store, )
)
# if the new state matches any of the input state groups, we can # if the new state matches any of the input state groups, we can
# use that state group again. Otherwise we will generate a state_id # use that state group again. Otherwise we will generate a state_id
@ -550,14 +548,14 @@ class StateResolutionHandler:
return cache return cache
def resolve_events_with_store( async def resolve_events_with_store(
self, self,
room_id: str, room_id: str,
room_version: str, room_version: str,
state_sets: Sequence[StateMap[str]], state_sets: Sequence[StateMap[str]],
event_map: Optional[Dict[str, EventBase]], event_map: Optional[Dict[str, EventBase]],
state_res_store: "StateResolutionStore", state_res_store: "StateResolutionStore",
) -> Awaitable[StateMap[str]]: ) -> StateMap[str]:
""" """
Args: Args:
room_id: the room we are working in room_id: the room we are working in
@ -580,20 +578,21 @@ class StateResolutionHandler:
Returns: Returns:
a map from (type, state_key) to event_id. a map from (type, state_key) to event_id.
""" """
v = KNOWN_ROOM_VERSIONS[room_version] with Measure(self.clock, "state._resolve_events"):
if v.state_res == StateResolutionVersions.V1: v = KNOWN_ROOM_VERSIONS[room_version]
return v1.resolve_events_with_store( if v.state_res == StateResolutionVersions.V1:
room_id, state_sets, event_map, state_res_store.get_events return await v1.resolve_events_with_store(
) room_id, state_sets, event_map, state_res_store.get_events
else: )
return v2.resolve_events_with_store( else:
self.clock, return await v2.resolve_events_with_store(
room_id, self.clock,
room_version, room_id,
state_sets, room_version,
event_map, state_sets,
state_res_store, event_map,
) state_res_store,
)
def _make_state_cache_entry( def _make_state_cache_entry(