synapse-product/changelog.d
Erik Johnston 5c9e39e619
Track device list updates per room. (#12321)
This is a first step in dealing with #7721.

The idea is basically that rather than calculating the full set of users a device list update needs to be sent to up front, we instead simply record the rooms the user was in at the time of the change. This will allow a few things:

1. we can defer calculating the set of remote servers that need to be poked about the change; and
2. during `/sync` and `/keys/changes` we can avoid also avoid calculating users who share rooms with other users, and instead just look at the rooms that have changed.

However, care needs to be taken to correctly handle server downgrades. As such this PR writes to both `device_lists_changes_in_room` and the `device_lists_outbound_pokes` table synchronously. In a future release we can then bump the database schema compat version to `69` and then we can assume that the new `device_lists_changes_in_room` exists and is handled.

There is a temporary option to disable writing to `device_lists_outbound_pokes` synchronously, allowing us to test the new code path does work (and by implication upgrading to a future release and downgrading to this one will work correctly).

Note: Ideally we'd do the calculation of room to servers on a worker (e.g. the background worker), but currently only master can write to the `device_list_outbound_pokes` table.
2022-04-04 15:25:20 +01:00
..
.gitignore Correct attrs package name in requirements (#3492) 2018-07-07 10:46:59 +10:00
11881.feature Send device list updates to application services (MSC3202) - part 1 (#11881) 2022-03-30 14:39:27 +01:00
12036.misc Rename shared_rooms to mutual_rooms (#12036) 2022-03-23 11:19:20 +00:00
12038.misc Remove mutual_rooms update_user_directory check, and add extra documentation (#12038) 2022-03-23 12:47:07 +00:00
12040.feature Optimise _get_state_after_missing_prev_event: use /state (#12040) 2022-04-01 12:53:42 +01:00
12083.misc Refactor create_new_client_event to use a new parameter, state_event_ids, which accurately describes the usage with MSC2716 instead of abusing auth_event_ids (#12083) 2022-03-25 09:21:06 -05:00
12087.bugfix Return a 404 from /state for an outlier (#12087) 2022-03-21 11:23:32 +00:00
12091.misc Add restrictions by default to open registration in Synapse (#12091) 2022-03-25 10:11:01 -07:00
12165.misc Remove references to "msc2403" (#12165) 2022-03-30 11:15:47 +00:00
12191.misc Raise an exception when getting state at an outlier (#12191) 2022-04-01 13:01:49 +01:00
12193.misc Start application service stream token tracking from 1 (#12193) 2022-03-30 11:10:12 +00:00
12195.feature Allow modules to store already existing 3PID associations (#12195) 2022-03-28 18:57:19 +02:00
12198.misc Add tests for database transaction callbacks (#12198) 2022-03-15 15:40:34 +00:00
12199.misc Handle cancellation in DatabasePool.runInteraction() (#12199) 2022-03-16 15:07:41 +00:00
12209.misc Use a sequence to generate AS transaction IDs, drop last_txn AS state (#12209) 2022-04-01 13:33:25 +00:00
12216.misc Add some missing type hints to cache datastore. (#12216) 2022-03-16 10:37:04 -04:00
12219.misc Clean-up logic for rebasing URLs during URL preview. (#12219) 2022-03-16 07:21:36 -04:00
12224.misc Add type hints to some tests/handlers files. (#12224) 2022-03-15 09:16:37 -04:00
12225.misc Use the ignored_users table to test event visibility & sync. (#12225) 2022-03-15 14:06:05 -04:00
12227.bugfix Do not consider events by ignored users for relations (#12285) 2022-03-24 10:25:42 -04:00
12228.bugfix Only fetch thread participation for events with threads. (#12228) 2022-03-18 17:15:45 +00:00
12231.doc Fix dead link in spam checker warning (#12231) 2022-03-16 13:52:59 +00:00
12232.bugfix Do not consider events by ignored users for relations (#12285) 2022-03-24 10:25:42 -04:00
12237.misc Move get_bundled_aggregations to relations handler. (#12237) 2022-03-18 17:49:32 +00:00
12240.misc Add type hints to more tests files. (#12240) 2022-03-17 07:25:50 -04:00
12242.misc Generate announcement links in release script (#12242) 2022-03-17 13:46:05 +00:00
12243.doc Sync more worker regexes in the documentation. (#12243) 2022-03-18 12:51:27 -04:00
12244.misc Try to detect borked package installations. (#12244) 2022-03-18 19:03:46 +00:00
12246.doc Correct check_username_for_spam annotations and docs (#12246) 2022-03-18 13:51:41 +00:00
12248.misc Add some type hints to datastore (#12248) 2022-03-18 15:24:18 +00:00
12250.feature Allow registering admin users using the module API (#12250) 2022-03-23 12:48:47 +01:00
12251.feature Move update_client_ip background job from the main process to the background worker. (#12251) 2022-04-01 13:08:55 +01:00
12255.misc Add some type hints to datastore. (#12255) 2022-03-28 14:11:14 -04:00
12256.misc Add type hints to tests files. (#12256) 2022-03-21 09:43:16 -04:00
12258.misc Make it possible to enable compression for the metrics HTTP resource (#12258) 2022-03-21 11:52:10 +00:00
12261.bugfix Always allow the empty string as an avatar_url. (#12261) 2022-03-25 13:28:42 +00:00
12262.misc Refuse to start if DB has an unsafe locale (#12262) 2022-03-23 10:23:05 -07:00
12266.misc Optionally include account validity in MSC3720 account status responses (#12266) 2022-03-24 11:19:41 +01:00
12267.misc Add more type hints to the main state store. (#12267) 2022-03-31 13:38:09 -04:00
12269.misc Use psycopg2 type stubs (#12269) 2022-03-23 14:03:24 +00:00
12271.doc Flesh out documentation for running SyTest against Synapse, including use of Postgres and worker mode. (#12271) 2022-03-30 12:55:05 +00:00
12272.misc Add cache for get_membership_from_event_ids (#12272) 2022-03-25 14:58:56 +00:00
12275.doc Authentik OpenID minor doc update (#12275) 2022-03-25 12:40:10 +00:00
12279.doc HAProxy guide update (#12279) 2022-03-28 10:48:18 +00:00
12283.misc Re-enable test concurrency on Complement (#12283) 2022-03-24 15:59:06 -04:00
12285.bugfix Do not consider events by ignored users for relations (#12285) 2022-03-24 10:25:42 -04:00
12288.misc Mention the new behaviour on unsafe database locale in the upgrade notes (#12288) 2022-03-25 10:56:18 +01:00
12291.misc Remove unused test code. (#12291) 2022-03-24 19:25:52 +00:00
12293.removal Remove the unused and unstable /aggregations endpoint. (#12293) 2022-03-30 11:45:32 -04:00
12295.misc Move MSC2654 support behind an experimental configuration flag. (#12295) 2022-03-31 15:05:13 -04:00
12301.misc Enhance logging for inbound federation events (#12301) 2022-03-25 14:44:57 +00:00
12302.feature Add a callback to react to 3PID associations (#12302) 2022-03-31 18:27:21 +02:00
12304.misc Remove unused auth_event_ids argument plumbing (#12304) 2022-03-29 09:18:52 +01:00
12310.feature Add a configuration to exclude rooms from sync response (#12310) 2022-03-30 09:43:04 +00:00
12311.misc Improve type annotations for execute_values. (#12311) 2022-03-28 17:21:23 +01:00
12313.misc Un-revert Jinja2 fix (#12313) 2022-03-28 17:02:57 +00:00
12314.misc Exclude outliers in on_backfill_request (#12314) 2022-03-28 19:20:14 +01:00
12315.doc Update LoggingTransaction.call_after and call_on_exception docstrings (#12315) 2022-03-29 12:31:05 +01:00
12316.misc Room batch: fix up handling of unknown prev_event_ids (#12316) 2022-03-29 14:56:25 +01:00
12320.misc Bump black and click versions (#12320) 2022-03-29 10:41:19 +00:00
12321.misc Track device list updates per room. (#12321) 2022-04-04 15:25:20 +01:00
12326.misc Fix typechecker problems exposed by signedjson 1.1.2 (#12326) 2022-03-29 21:37:50 +00:00
12327.feature Add a module callback to react to account data changes (#12327) 2022-04-01 11:22:48 +02:00
12330.misc Disable proactive sends for remote joins (#12330) 2022-03-30 12:04:35 +01:00
12331.doc Update dead links in check-newsfragment.sh (#12331) 2022-03-30 11:44:28 +00:00
12332.misc Handle outliers in /federation/v1/event (#12332) 2022-03-31 17:39:34 +00:00
12333.bugfix Ensure the type of URL attributes is always str when matching against preview blacklist (#12333) 2022-03-31 11:49:49 +02:00
12334.misc Nuke the tox packaging job (#12334) 2022-03-31 11:01:26 +01:00
12335.misc Ignore .envrc for direnv users (#12335) 2022-03-31 11:03:07 +01:00
12336.misc Remove dockerfile-pgtests (#12336) 2022-03-31 11:30:07 +01:00
12338.misc Remove an unnecessary class from the relations code. (#12338) 2022-03-31 07:13:49 -04:00
12341.feature Add set_user_admin function to the module API (#12341) 2022-04-01 09:31:30 +01:00
12346.misc Remove redundant get_success calls in test code (#12346) 2022-04-01 16:10:31 +01:00
12347.misc Add type hints for tests/unittest.py. (#12347) 2022-04-01 16:04:16 +00:00
12348.misc Move single-use methods out of TestCase (#12348) 2022-04-01 12:48:08 +00:00
12349.misc Burn check_signature dev script. (#12351) 2022-04-01 13:41:42 +00:00
12350.bugfix 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
12351.misc Burn check_signature dev script. (#12351) 2022-04-01 13:41:42 +00:00
12355.misc Remove more dead/broken dev scripts (#12355) 2022-04-03 21:21:08 +01:00