Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Allow compute_state_after_events to use partial state (#14676)
Browse files Browse the repository at this point in the history
* Allow `compute_state_after_events` to use partial state

if fetching a subset of state that is trusted during a partial join.

* Changelog
  • Loading branch information
David Robertson authored Dec 14, 2022
1 parent fb60cb1 commit 4f4d690
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
1 change: 1 addition & 0 deletions changelog.d/14676.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Faster joins: make `computer_state_after_events` consistent with other state-fetching functions that take a `StateFilter`.
10 changes: 8 additions & 2 deletions synapse/state/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,14 +202,20 @@ async def compute_state_after_events(
room_id: the room_id containing the given events.
event_ids: the events whose state should be fetched and resolved.
await_full_state: if `True`, will block if we do not yet have complete state
at the given `event_id`s, regardless of whether `state_filter` is
satisfied by partial state.
at these events and `state_filter` is not satisfied by partial state.
Defaults to `True`.
Returns:
the state dict (a mapping from (event_type, state_key) -> event_id) which
holds the resolution of the states after the given event IDs.
"""
logger.debug("calling resolve_state_groups from compute_state_after_events")
if (
await_full_state
and state_filter
and not state_filter.must_await_full_state(self.hs.is_mine_id)
):
await_full_state = False
ret = await self.resolve_state_groups_for_events(
room_id, event_ids, await_full_state
)
Expand Down

0 comments on commit 4f4d690

Please sign in to comment.