MatrixSynapse/synapse/storage/schema
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
..
common Snapshot schema 72 (#13873) 2022-09-26 18:28:32 +01:00
main Track unconverted device list outbound pokes using a position instead (#14516) 2022-11-22 16:46:52 +00:00
state Snapshot schema 72 (#13873) 2022-09-26 18:28:32 +01:00
README.md update links to schema doc (#10620) 2021-08-17 10:45:35 +00:00
__init__.py Track notification counts per thread (implement MSC3773). (#13776) 2022-10-04 09:47:04 -04:00

README.md

Synapse Database Schemas

This directory contains the schema files used to build Synapse databases. For more information, see https://matrix-org.github.io/synapse/develop/development/database_schema.html.