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

Faster remote room joins (worker mode): do not populate external hosts-in-room cache when sending events as this requires blocking for full state. #14749

Merged
merged 4 commits into from
Jan 11, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
fixup: reword comment
  • Loading branch information
Sean Quah committed Jan 10, 2023
commit 1e4e430892841373c8a9f8081b9919279210c2d6
11 changes: 8 additions & 3 deletions synapse/handlers/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -1539,9 +1539,14 @@ async def cache_joined_hosts_for_events(

for event, event_context in events_and_context:
if event_context.partial_state:
# We can't precalculate joined hosts for a partial-state event,
# (at least not without blocking until full state).
# So skip this calculation entirely.
# To populate the cache for a partial-state event, we either have to
# block until full state, which the code below does, or change the
# meaning of cache values to be the list of hosts to which we plan to
# send events and calculate that instead.
#
# The federation senders don't use the external cache when sending
# events in partial-state rooms anyway, so let's not bother populating
# the cache.
continue

# We actually store two mappings, event ID -> prev state group,
Expand Down