synapse/tests/storage
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
..
databases Fix background updates failing to add unique indexes on receipts (#14453) 2022-11-16 15:01:22 +00:00
util Wait for lazy join to complete when getting current state (#12872) 2022-06-01 16:02:53 +01:00
__init__.py Reference Matrix Home Server 2014-08-12 15:10:52 +01:00
test__base.py Optimise _update_client_ips_batch_txn to batch together database operations. (#12252) 2022-04-08 15:29:13 +01:00
test_account_data.py Use the ignored_users table to test event visibility & sync. (#12225) 2022-03-15 14:06:05 -04:00
test_appservice.py Remove code which updates application_services_state.last_txn (#12680) 2022-05-17 11:07:18 +01:00
test_background_update.py Add type hints to tests files. (#12256) 2022-03-21 09:43:16 -04:00
test_base.py Require SQLite >= 3.27.0 (#13760) 2022-09-09 11:14:10 +01:00
test_cleanup_extrems.py Default to private room visibility rather than public when a client does not specify one, according to spec. (#12350) 2022-04-01 15:55:09 +01:00
test_client_ips.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
test_database.py Handle cancellation in DatabasePool.runInteraction() (#12199) 2022-03-16 15:07:41 +00:00
test_devices.py Track unconverted device list outbound pokes using a position instead (#14516) 2022-11-22 16:46:52 +00:00
test_directory.py Replace assertEquals and friends with non-deprecated versions. (#12092) 2022-02-28 07:12:29 -05:00
test_e2e_room_keys.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
test_end_to_end_keys.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
test_event_chain.py Persist CreateRoom events to DB in a batch (#13800) 2022-09-28 10:11:48 +00:00
test_event_federation.py Stop getting missing prev_events after we already know their signature is invalid (#13816) 2022-10-15 00:36:49 -05:00
test_event_metrics.py Fix (final) Bugbear violations (#9838) 2021-04-20 11:50:49 +01:00
test_event_push_actions.py Use threaded receipts when fetching events for push. (#13878) 2022-10-04 12:07:02 -04:00
test_events.py Faster room joins: avoid blocking when pulling events with missing prevs (#13355) 2022-07-26 12:39:23 +01:00
test_id_generators.py Reintroduce #14376, with bugfix for monoliths (#14468) 2022-11-16 22:16:46 +00:00
test_keys.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
test_main.py Replace assertEquals and friends with non-deprecated versions. (#12092) 2022-02-28 07:12:29 -05:00
test_monthly_active_users.py Update mypy and mypy-zope, attempt 3 (#13993) 2022-09-30 17:36:28 +01:00
test_profile.py Replace assertEquals and friends with non-deprecated versions. (#12092) 2022-02-28 07:12:29 -05:00
test_purge.py Async get event cache prep (#13242) 2022-07-15 09:30:46 +00:00
test_receipts.py Clarify that a method returns only unthreaded receipts. (#13937) 2022-09-29 07:07:31 -04:00
test_redaction.py Rename storage classes (#12913) 2022-05-31 12:17:50 +00:00
test_registration.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
test_relations.py Accept threaded receipts for events related to the root event. (#14174) 2022-10-14 18:05:25 +00:00
test_rollback_worker.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
test_room.py Remove obsolete RoomEventsStoreTestCase (#13200) 2022-07-07 13:47:26 +01:00
test_room_search.py Drop support for Postgres 10 in full text search code. (#14397) 2022-11-09 09:55:34 -05:00
test_roommember.py Fix that user cannot /forget rooms after the last member has left (#13546) 2022-08-30 09:58:38 +00:00
test_state.py Make DictionaryCache have better expiry properties (#13292) 2022-07-21 17:13:44 +01:00
test_stream.py Support filtering the /messages API by relation type (MSC3874). (#14148) 2022-10-17 11:32:11 -04:00
test_transactions.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
test_txn_limit.py Require direct references to configuration variables. (#10985) 2021-10-06 10:47:41 -04:00
test_unsafe_locale.py Refuse to start if DB has an unsafe locale (#12262) 2022-03-23 10:23:05 -07:00
test_user_directory.py Remove remaining bits of groups code. (#12936) 2022-06-01 09:41:25 -04:00