mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-24 10:35:46 +03:00
Merge pull request #4109 from matrix-org/erikj/repl_devices
A couple of replication fixes for device lists
This commit is contained in:
commit
169851b412
2 changed files with 6 additions and 1 deletions
1
changelog.d/4109.misc
Normal file
1
changelog.d/4109.misc
Normal file
|
@ -0,0 +1 @@
|
|||
Reduce replication traffic for device lists
|
|
@ -589,10 +589,14 @@ class DeviceStore(SQLBaseStore):
|
|||
combined list of changes to devices, and which destinations need to be
|
||||
poked. `destination` may be None if no destinations need to be poked.
|
||||
"""
|
||||
# We do a group by here as there can be a large number of duplicate
|
||||
# entries, since we throw away device IDs.
|
||||
sql = """
|
||||
SELECT stream_id, user_id, destination FROM device_lists_stream
|
||||
SELECT MAX(stream_id) AS stream_id, user_id, destination
|
||||
FROM device_lists_stream
|
||||
LEFT JOIN device_lists_outbound_pokes USING (stream_id, user_id, device_id)
|
||||
WHERE ? < stream_id AND stream_id <= ?
|
||||
GROUP BY user_id, destination
|
||||
"""
|
||||
return self._execute(
|
||||
"get_all_device_list_changes_for_remotes", None,
|
||||
|
|
Loading…
Reference in a new issue