MatrixSynapse/synapse/handlers
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
..
ui_auth Fix twisted trunk mypy errors (#14012) 2022-10-03 13:26:49 +00:00
__init__.py
account.py Optionally include account validity in MSC3720 account status responses (#12266) 2022-03-24 11:19:41 +01:00
account_data.py Do not allow a None-limit on PaginationConfig. (#14146) 2022-10-14 12:30:05 +00:00
account_validity.py Implement cancellation support/protection for module callbacks (#12568) 2022-05-09 12:31:14 +01:00
admin.py Show erasure status when listing users in the Admin API (#14205) 2022-10-21 13:52:44 +01:00
appservice.py Fix a bug where redactions were not being sent over federation if we did not have the original event. (#13813) 2022-10-11 11:18:45 -07:00
auth.py Save login tokens in database (#13844) 2022-10-26 11:45:41 +01:00
cas.py Fix twisted trunk mypy errors (#14012) 2022-10-03 13:26:49 +00:00
deactivate_account.py Add third_party module callbacks to check if a user can delete a room and deactivate a user (#12028) 2022-03-09 18:23:57 +00:00
device.py Track unconverted device list outbound pokes using a position instead (#14516) 2022-11-22 16:46:52 +00:00
devicemessage.py Additional constants for EDU types. (#12884) 2022-05-27 07:14:36 -04:00
directory.py Allow PUT/GET of aliases during faster join (#14292) 2022-11-01 15:02:39 +00:00
e2e_keys.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
e2e_room_keys.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
event_auth.py Prepatory work for adding power level event to batched events (#14214) 2022-10-18 09:58:47 -07:00
events.py Directly lookup local membership instead of getting all members in a room first (`get_users_in_room` mis-use) (#13608) 2022-08-24 14:13:12 -05:00
federation.py Faster joins: filter out non local events when a room doesn't have its full state (#14404) 2022-11-21 16:46:14 +01:00
federation_event.py Quieter logging for stateres failure at missing prev events (#14346) 2022-11-10 12:17:46 +00:00
identity.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
initial_sync.py Do not allow a None-limit on PaginationConfig. (#14146) 2022-10-14 12:30:05 +00:00
message.py Implement MSC3912: Relation-based redactions (#14260) 2022-11-03 16:21:31 +00:00
oidc.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
pagination.py Do not allow a None-limit on PaginationConfig. (#14146) 2022-10-14 12:30:05 +00:00
password_policy.py Use direct references for some configuration variables (part 3) (#10885) 2021-09-23 07:13:34 -04:00
presence.py Fix an invalid comparison of `UserPresenceState` to `str` (#14393) 2022-11-16 15:25:35 +00:00
profile.py fix broken avatar checks when server_name contains a port (#13927) 2022-10-26 15:51:23 +01:00
push_rules.py Port the push rule classes to Rust. (#13768) 2022-09-20 12:10:31 +01:00
read_marker.py Refactor and convert `Linearizer` to async (#12357) 2022-04-05 15:43:52 +01:00
receipts.py Do not allow a None-limit on PaginationConfig. (#14146) 2022-10-14 12:30:05 +00:00
register.py 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
relations.py Parallelize calls to fetch bundled aggregations. (#14510) 2022-11-22 09:47:32 -05:00
room.py Don't filter state in /context response (#14461) 2022-11-16 12:09:33 +00:00
room_batch.py Persist CreateRoom events to DB in a batch (#13800) 2022-09-28 10:11:48 +00:00
room_list.py Use stable prefixes for MSC3827: filtering of `/publicRooms` by room type (#13370) 2022-07-27 19:46:57 +01:00
room_member.py Add query parameter `ts` to allow appservices set the `origin_server_ts` for state events. (#11866) 2022-10-03 13:30:45 +00:00
room_member_worker.py
room_summary.py Faster Remote Room Joins: tell remote homeservers that we are unable to authorise them if they query a room which has partial state on our server. (#13823) 2022-09-23 11:47:16 +01:00
saml.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
search.py Reduce the amount of state we pull from the DB (#12811) 2022-06-06 09:24:12 +01:00
send_email.py Discourage automatic replies to Synapse's emails (#13957) 2022-09-30 13:23:37 +00:00
set_password.py Remove `HomeServer.get_datastore()` (#12031) 2022-02-23 11:04:02 +00:00
sso.py Support OIDC backchannel logouts (#11414) 2022-10-31 13:07:30 -04:00
state_deltas.py Remove `HomeServer.get_datastore()` (#12031) 2022-02-23 11:04:02 +00:00
stats.py Implement MSC3827: Filtering of `/publicRooms` by room type (#13031) 2022-06-29 17:12:45 +00:00
sync.py Include heroes in partial join responses' state (#14442) 2022-11-15 17:35:19 +00:00
typing.py Do not allow a None-limit on PaginationConfig. (#14146) 2022-10-14 12:30:05 +00:00
user_directory.py Clarifications in user directory for users who share rooms tracking (#13966) 2022-09-30 14:40:18 -05:00