mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-04 16:14:56 -04:00
Track unconverted device list outbound pokes using a position instead (#14516)
When a local device list change is added to `device_lists_changes_in_room`, the `converted_to_destinations` flag is set to `FALSE` and the `_handle_new_device_update_async` background process is started. This background process looks for unconverted rows in `device_lists_changes_in_room`, copies them to `device_lists_outbound_pokes` and updates the flag. To update the `converted_to_destinations` flag, the database performs a `DELETE` and `INSERT` internally, which fragments the table. To avoid this, track unconverted rows using a `(stream ID, room ID)` position instead of the flag. From now on, the `converted_to_destinations` column indicates rows that need converting to outbound pokes, but does not indicate whether the conversion has already taken place. Closes #14037. Signed-off-by: Sean Quah <seanq@matrix.org>
This commit is contained in:
parent
7eb7460042
commit
9cae44f49e
6 changed files with 158 additions and 49 deletions
|
@ -28,7 +28,7 @@ class DeviceStoreTestCase(HomeserverTestCase):
|
|||
"""
|
||||
|
||||
for device_id in device_ids:
|
||||
stream_id = self.get_success(
|
||||
self.get_success(
|
||||
self.store.add_device_change_to_streams(
|
||||
user_id, [device_id], ["!some:room"]
|
||||
)
|
||||
|
@ -39,7 +39,6 @@ class DeviceStoreTestCase(HomeserverTestCase):
|
|||
user_id=user_id,
|
||||
device_id=device_id,
|
||||
room_id="!some:room",
|
||||
stream_id=stream_id,
|
||||
hosts=[host],
|
||||
context={},
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue