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> |
||
|---|---|---|
| .. | ||
| user_authentication | ||
| config_documentation.md | ||
| homeserver_sample_config.md | ||
| logging_sample_config.md | ||
| README.md | ||
Configuration
This section contains information on tweaking Synapse via the various options in the configuration file. A configuration file should have been generated when you installed Synapse.