Use servers list approx to send read receipts when in partial state (#14549)

Signed-off-by: Mathieu Velten <mathieuv@matrix.org>
pull/14590/head
Mathieu Velten 2022-11-30 13:39:47 +01:00 committed by GitHub
parent ecb6fe9d9c
commit 4569eda944
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 1 deletions

1
changelog.d/14549.misc Normal file
View File

@ -0,0 +1 @@
Faster joins: use servers list approximation to send read receipts when in partial state instead of waiting for the full state of the room.

View File

@ -647,7 +647,7 @@ class FederationSender(AbstractFederationSender):
room_id = receipt.room_id room_id = receipt.room_id
# Work out which remote servers should be poked and poke them. # Work out which remote servers should be poked and poke them.
domains_set = await self._storage_controllers.state.get_current_hosts_in_room( domains_set = await self._storage_controllers.state.get_current_hosts_in_room_or_partial_state_approximation(
room_id room_id
) )
domains = [ domains = [

View File

@ -38,6 +38,10 @@ class FederationSenderReceiptsTestCases(HomeserverTestCase):
return_value=make_awaitable({"test", "host2"}) return_value=make_awaitable({"test", "host2"})
) )
hs.get_storage_controllers().state.get_current_hosts_in_room_or_partial_state_approximation = (
hs.get_storage_controllers().state.get_current_hosts_in_room
)
return hs return hs
@override_config({"send_federation": True}) @override_config({"send_federation": True})