mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-01-18 08:07:12 -05:00
9cae44f49e
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> |
||
---|---|---|
.. | ||
01event_failed_pull_attempts.sql | ||
02add_pusher_enabled.sql | ||
02room_id_indexes_for_purging.sql | ||
03pusher_device_id.sql | ||
03users_approved_column.sql | ||
04partial_join_details.sql | ||
04pending_device_list_updates.sql | ||
05old_push_actions.sql.postgres | ||
05old_push_actions.sql.sqlite | ||
06thread_notifications_thread_id_idx.sql | ||
08thread_receipts_non_null.sql.postgres | ||
08thread_receipts_non_null.sql.sqlite | ||
09partial_joined_via_destination.sql | ||
09threads_table.sql | ||
10_update_sqlite_fts4_tokenizer.py | ||
10login_tokens.sql | ||
11event_search_room_id_n_distinct.sql.postgres | ||
12refactor_device_list_outbound_pokes.sql |