summary refs log tree commit diff
path: root/synapse/handlers/room.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2022-09-30 13:15:32 +0100
committerGitHub <noreply@github.com>2022-09-30 13:15:32 +0100
commit3dfc4a08dc2e77178f2c2af68dc14b32da2d8b8f (patch)
treeabde443255a515041f7c28e919601267edec2fdc /synapse/handlers/room.py
parentFix overflows in /messages backfill calculation (#13936) (diff)
downloadsynapse-3dfc4a08dc2e77178f2c2af68dc14b32da2d8b8f.tar.xz
Fix performance regression in `get_users_in_room` (#13972)
Fixes #13942. Introduced in #13575.

Basically, let's only get the ordered set of hosts out of the DB if we need an ordered set of hosts. Since we split the function up the caching won't be as good, but I think it will still be fine as e.g. multiple backfill requests for the same room will hit the cache.
Diffstat (limited to 'synapse/handlers/room.py')
-rw-r--r--synapse/handlers/room.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index b220238e55..57ab05ad25 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -1540,7 +1540,9 @@ class TimestampLookupHandler:
             )
 
             likely_domains = (
-                await self._storage_controllers.state.get_current_hosts_in_room(room_id)
+                await self._storage_controllers.state.get_current_hosts_in_room_ordered(
+                    room_id
+                )
             )
 
             # Loop through each homeserver candidate until we get a succesful response