-
Notifications
You must be signed in to change notification settings - Fork 358
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Release Synapse 1.35.0 Signed-off-by: Dan Callahan <danc@element.io>
- Loading branch information
Showing
2 changed files
with
41 additions
and
0 deletions.
There are no files selected for viewing
41 changes: 41 additions & 0 deletions
41
gatsby/content/blog/2021/06/2021-06-01-synapse-1.35.0-released.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
--- | ||
date: '2021-06-01' | ||
title: Synapse 1.35.0 released | ||
categories: | ||
- Releases | ||
author: Dan Callahan | ||
--- | ||
|
||
Synapse 1.35.0 is out! This release focused on improving internals as we drive toward better memory performance during room joins, but more on that below. | ||
|
||
## Spaces: On by Default | ||
|
||
Following the successful release of [Synapse 1.34](/blog/2021/05/17/synapse-1-34-0-released), the experimental Spaces flag is now enabled by default. If you had manually enabled the `experimental_features: { spaces_enabled: true }` flag in your homeserver configuration, you may now remove it. | ||
|
||
## Bug Squashing | ||
|
||
This release of Synapse fixes an issue which could cause federated room joins to fail when the join response exceeded a size limit which was too low ([#10082](/~https://github.com/matrix-org/synapse/pull/10082)). We've also improved what Synapse logs when it drops a connection in similar circumstances ([#10091](/~https://github.com/matrix-org/synapse/pull/10091)), which should aid diagnosis if a similar issue were to arise in the future. | ||
|
||
GitHub user thermaq contributed a fix ([#10014](/~https://github.com/matrix-org/synapse/pull/10014)) for a bug which could cause user presence state to become stale. | ||
|
||
Lastly our OpenTracing support now allows for profiling end-to-end performance on a per-user basis ([#9978](/~https://github.com/matrix-org/synapse/pull/9978)). | ||
|
||
## An Update on Room Joins | ||
|
||
We've been hammering away at shrinking Synapse's memory footprint when joining large / complex rooms, and while we're not there yet, the end is in sight! In particular, this release includes many internal refactorings, including using [ijson](https://pypi.org/project/ijson/) to parse the JSON response to `/send_join` ([#9958](/~https://github.com/matrix-org/synapse/pull/9958)), clearing the way for substantial improvements. | ||
|
||
Memory usage still spikes because we're effectively doing the same work with a different library, but ijson's design allows for iterative parsing. This will pay dividends once we modify the code downstream of `/send_join` to take advantage of it. | ||
|
||
Concretely, Erik Johnston has an experimental branch of Synapse which completely eliminates the memory spike: | ||
|
||
![Memory usage graph for Synapse 1.33, 1.35, and an experimental branch](/blog/img/2021-06-01-synapse-1.35-join-memory.png) | ||
|
||
The remaining work is centered on splitting that branch into self-contained, reviewable pull requests, like a rewrite of the Synapse Keyring class ([#10035](/~https://github.com/matrix-org/synapse/pull/10035)). After that's merged, we'll need to make one further change to properly batch up work, at which point we should attain the efficiency gains from Erik's experiment. | ||
|
||
## Everything Else | ||
|
||
GitHub user savyajha contributed a security hardened systemd unit file which effectively sandboxes Synapse ([#9803](/~https://github.com/matrix-org/synapse/pull/9803)). While not enabled by default, we'd encourage security conscious users to review the [example file](/~https://github.com/matrix-org/synapse/blob/v1.35.0/contrib/systemd/override-hardened.conf) and associated [documentation](/~https://github.com/matrix-org/synapse/blob/v1.35.0/docs/systemd-with-workers/README.md#hardening). | ||
|
||
Please see the [Release Notes](/~https://github.com/matrix-org/synapse/blob/v1.35.0/CHANGES.md) for a complete list of changes in this release. | ||
|
||
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including [dklimpel](/~https://github.com/dklimpel), [jerinjtitus](/~https://github.com/jerinjtitus), [junquera](/~https://github.com/junquera), [lonyeon](/~https://github.com/lonyeon), [savyajha](/~https://github.com/savyajha), and [thermaq](/~https://github.com/thermaq). |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.