summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorErik Johnston <erikj@jki.re>2017-03-28 11:35:41 +0100
committerGitHub <noreply@github.com>2017-03-28 11:35:41 +0100
commitd28db583dacc76dd6423410225072db1d5a66807 (patch)
tree12d857a464d7b7a8c57f262e56eedb529b071c99 /synapse
parentMerge pull request #2070 from matrix-org/erikj/perf_send (diff)
parentBatch sending of device list pokes (diff)
downloadsynapse-d28db583dacc76dd6423410225072db1d5a66807.tar.xz
Merge pull request #2063 from matrix-org/erikj/device_list_batch
Batch sending of device list pokes
Diffstat (limited to 'synapse')
-rw-r--r--synapse/federation/transaction_queue.py1
-rw-r--r--synapse/storage/devices.py4
2 files changed, 5 insertions, 0 deletions
diff --git a/synapse/federation/transaction_queue.py b/synapse/federation/transaction_queue.py

index d7ecefcc64..2c96475b2a 100644 --- a/synapse/federation/transaction_queue.py +++ b/synapse/federation/transaction_queue.py
@@ -309,6 +309,7 @@ class TransactionQueue(object): # XXX: what's this for? yield run_on_reactor() + pending_pdus = [] while True: device_message_edus, device_stream_id, dev_list_id = ( yield self._get_new_device_messages(destination) diff --git a/synapse/storage/devices.py b/synapse/storage/devices.py
index 6beeff8b00..53e36791d5 100644 --- a/synapse/storage/devices.py +++ b/synapse/storage/devices.py
@@ -329,6 +329,7 @@ class DeviceStore(SQLBaseStore): SELECT user_id, device_id, max(stream_id) FROM device_lists_outbound_pokes WHERE destination = ? AND ? < stream_id AND stream_id <= ? AND sent = ? GROUP BY user_id, device_id + LIMIT 20 """ txn.execute( sql, (destination, from_stream_id, now_stream_id, False) @@ -339,6 +340,9 @@ class DeviceStore(SQLBaseStore): if not query_map: return (now_stream_id, []) + if len(query_map) >= 20: + now_stream_id = max(stream_id for stream_id in query_map.itervalues()) + devices = self._get_e2e_device_keys_txn( txn, query_map.keys(), include_all_devices=True )