MatrixSynapse/synapse/storage/schema/main/delta/73
Sean Quah 9cae44f49e
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>
2022-11-22 16:46:52 +00:00
..
01event_failed_pull_attempts.sql Keep track when we try and fail to process a pulled event (#13589) 2022-09-14 13:57:50 -05:00
02add_pusher_enabled.sql Support enabling/disabling pushers (from MSC3881) (#13799) 2022-09-21 14:39:01 +00:00
02room_id_indexes_for_purging.sql Add support to purge rows from MSC2716 and other tables when purging a room (#13825) 2022-09-16 10:56:56 -05:00
03pusher_device_id.sql Track device IDs for pushers (#13831) 2022-09-21 15:31:53 +00:00
03users_approved_column.sql Allow admins to require a manual approval process before new accounts can be used (using MSC3866) (#13556) 2022-09-29 15:23:24 +02:00
04partial_join_details.sql Add new columns tracking when we partial-joined (#13892) 2022-09-27 17:26:35 +01:00
04pending_device_list_updates.sql Handle remote device list updates during partial join (#13913) 2022-09-28 13:42:43 +00:00
05old_push_actions.sql.postgres Clear out old rows from `event_push_actions_staging` (#14020) 2022-10-03 18:44:44 +01:00
05old_push_actions.sql.sqlite Clear out old rows from `event_push_actions_staging` (#14020) 2022-10-03 18:44:44 +01:00
06thread_notifications_thread_id_idx.sql Update the thread_id right before use (in case the bg update hasn't finished) (#14222) 2022-10-18 14:55:41 +00:00
08thread_receipts_non_null.sql.postgres Mark events as read using threaded read receipts from MSC3771. (#13877) 2022-10-04 10:46:42 -04:00
08thread_receipts_non_null.sql.sqlite Mark events as read using threaded read receipts from MSC3771. (#13877) 2022-10-04 10:46:42 -04:00
09partial_joined_via_destination.sql When restarting a partial join resync, prioritise the server which actioned a partial join (#14126) 2022-10-18 12:33:18 +01:00
09threads_table.sql Add an API for listing threads in a room. (#13394) 2022-10-13 08:02:11 -04:00
10_update_sqlite_fts4_tokenizer.py Unified search query syntax using the full-text search capabilities of the underlying DB. (#11635) 2022-10-25 14:05:22 -04:00
10login_tokens.sql Save login tokens in database (#13844) 2022-10-26 11:45:41 +01:00
11event_search_room_id_n_distinct.sql.postgres Fix PostgreSQL sometimes using table scans for `event_search` (#14409) 2022-11-10 19:02:27 +00:00
12refactor_device_list_outbound_pokes.sql Track unconverted device list outbound pokes using a position instead (#14516) 2022-11-22 16:46:52 +00:00