From 8c05b5f9d70eec0c67f8eccd112e0509869e0bff Mon Sep 17 00:00:00 2001 From: erikjohnston Date: Tue, 6 Sep 2022 07:50:41 +0000 Subject: deploy: 32fc3b7ba4702a0068a82bdd0595e2f426967d4d --- develop/print.html | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) (limited to 'develop/print.html') diff --git a/develop/print.html b/develop/print.html index 51efcf0a59..bd0b3d5e99 100644 --- a/develop/print.html +++ b/develop/print.html @@ -1618,6 +1618,18 @@ dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb

Upgrading to v1.67.0

+

Direct TCP replication is no longer supported: migrate to Redis

+

Redis support was added in v1.13.0 with it becoming the recommended method in +v1.18.0. It replaced the old direct TCP connections (which was deprecated as of +v1.18.0) to the main process. With Redis, rather than all the workers connecting +to the main process, all the workers and the main process connect to Redis, +which relays replication commands between processes. This can give a significant +CPU saving on the main process and is a prerequisite for upcoming +performance improvements.

+

To migrate to Redis add the redis config, +and remove the TCP replication listener from config of the master and +worker_replication_port from worker config. Note that a HTTP listener with a +replication resource is still required.

Minimum version of Poetry is now v1.2.0

The minimum supported version of poetry is now 1.2. This should only affect those installing from a source checkout.

@@ -3505,9 +3517,6 @@ configuration.

  • metrics: (see the docs here),

  • -
  • -

    replication: (deprecated as of Synapse 1.18, see the docs here).

    -
  • @@ -9683,13 +9692,8 @@ sync with the database state.

    stream between all configured Synapse processes. Additionally, processes may make HTTP requests to each other, primarily for operations which need to wait for a reply ─ such as sending an event.

    -

    Redis support was added in v1.13.0 with it becoming the recommended method in -v1.18.0. It replaced the old direct TCP connections (which is deprecated as of -v1.18.0) to the main process. With Redis, rather than all the workers connecting -to the main process, all the workers and the main process connect to Redis, -which relays replication commands between processes. This can give a significant -cpu saving on the main process and will be a prerequisite for upcoming -performance improvements.

    +

    All the workers and the main process connect to Redis, which relays replication +commands between processes.

    If Redis support is enabled Synapse will use it as a shared cache, as well as a pub/sub mechanism.

    See the Architectural diagram section at the end for @@ -9946,8 +9950,7 @@ of events, then a dedicated set of workers can be provisioned to limit the effects of bursts of events from that bridge on events sent by normal users.

    Stream writers

    Additionally, the writing of specific streams (such as events) can be moved off -of the main process to a particular worker. -(This is only supported with Redis-based replication.)

    +of the main process to a particular worker.

    To enable this, the worker must have a HTTP replication listener configured, have a worker_name and be listed in the instance_map config. The same worker can handle multiple streams, but unless otherwise documented, each stream can only @@ -10160,14 +10163,9 @@ equivalent to synapse.app.generic_worker:

  • synapse.app.synchrotron
  • Migration from old config

    -

    There are two main independent changes that have been made: introducing Redis -support and merging apps into synapse.app.generic_worker. Both these changes -are backwards compatible and so no changes to the config are required, however -server admins are encouraged to plan to migrate to Redis as the old style direct -TCP replication config is deprecated.

    -

    To migrate to Redis add the redis config as above, and optionally remove the -TCP replication listener from master and worker_replication_port from worker -config.

    +

    A main change that has occurred is the merging of worker apps into +synapse.app.generic_worker. This change is backwards compatible and so no +changes to the config are required.

    To migrate apps to use synapse.app.generic_worker simply update the worker_app option in the worker configs, and where worker are started (e.g. in systemd service files, but not required for synctl).

    -- cgit 1.5.1