synapse/docker/complement/conf
Quentin Gliech 5ea2cf2484
Move device changes off the main process (#18581)
The main goal of this PR is to handle device list changes onto multiple
writers, off the main process, so that we can have logins happening
whilst Synapse is rolling-restarting.

This is quite an intrusive change, so I would advise to review this
commit by commit; I tried to keep the history as clean as possible.

There are a few things to consider:

- the `device_list_key` in stream tokens becomes a
`MultiWriterStreamToken`, which has a few implications in sync and on
the storage layer
- we had a split between `DeviceHandler` and `DeviceWorkerHandler` for
master vs. worker process. I've kept this split, but making it rather
writer vs. non-writer worker, using method overrides for doing
replication calls when needed
- there are a few operations that need to happen on a single worker at a
time. Instead of using cross-worker locks, for now I made them run on
the first writer on the list

---------

Co-authored-by: Eric Eastwood <erice@element.io>
2025-07-18 09:06:14 +02:00
..
postgres.supervisord.conf Prevent start_for_complement.sh from setting START_POSTGRES to false when it's already set (#16985) 2024-03-21 13:50:51 +00:00
start_for_complement.sh Move device changes off the main process (#18581) 2025-07-18 09:06:14 +02:00
workers-shared-extra.yaml.j2 Add support for MSC4155 Invite filtering (#18288) 2025-06-05 11:49:09 +01:00