summary refs log tree commit diff
path: root/synapse/handlers/device.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2019-06-27 16:53:15 +0100
committerGitHub <noreply@github.com>2019-06-27 16:53:15 +0100
commite79ec0316509601f3dc787399dc1d4e455ddec2d (patch)
treef98f36ba2e7631b56887ae24caf2e0489e72b07c /synapse/handlers/device.py
parentDocker image: Add a migrate_config mode (#5567) (diff)
parentReview comments (diff)
downloadsynapse-e79ec0316509601f3dc787399dc1d4e455ddec2d.tar.xz
Merge pull request #5559 from matrix-org/erikj/refactor_changed_devices
Refactor devices changed query to pull less from DB
Diffstat (limited to 'synapse/handlers/device.py')
-rw-r--r--synapse/handlers/device.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py

index f59d0479b5..99e8413092 100644 --- a/synapse/handlers/device.py +++ b/synapse/handlers/device.py
@@ -101,9 +101,13 @@ class DeviceWorkerHandler(BaseHandler): room_ids = yield self.store.get_rooms_for_user(user_id) - # First we check if any devices have changed - changed = yield self.store.get_user_whose_devices_changed( - from_token.device_list_key + # First we check if any devices have changed for users that we share + # rooms with. + users_who_share_room = yield self.store.get_users_who_share_room_with_user( + user_id + ) + changed = yield self.store.get_users_whose_devices_changed( + from_token.device_list_key, users_who_share_room ) # Then work out if any users have since joined @@ -188,10 +192,6 @@ class DeviceWorkerHandler(BaseHandler): break if possibly_changed or possibly_left: - users_who_share_room = yield self.store.get_users_who_share_room_with_user( - user_id - ) - # Take the intersection of the users whose devices may have changed # and those that actually still share a room with the user possibly_joined = possibly_changed & users_who_share_room