Use less DB for device list handling in sync

pull/4/merge
Erik Johnston 7 years ago
parent 0184a97dbd
commit e9aec001f4
  1. 15
      synapse/handlers/sync.py

@ -579,18 +579,17 @@ class SyncHandler(object):
since_token = sync_result_builder.since_token
if since_token and since_token.device_list_key:
room_ids = yield self.store.get_rooms_for_user(user_id)
user_ids_changed = set()
changed = yield self.store.get_user_whose_devices_changed(
since_token.device_list_key
)
for other_user_id in changed:
other_room_ids = yield self.store.get_rooms_for_user(other_user_id)
if room_ids.intersection(other_room_ids):
user_ids_changed.add(other_user_id)
if not changed:
defer.returnValue([])
users_who_share_room = yield self.store.get_users_who_share_room_with_user(
user_id
)
defer.returnValue(user_ids_changed)
defer.returnValue(users_who_share_room & changed)
else:
defer.returnValue([])

Loading…
Cancel
Save