From adf15c4f6b856c3dfc98904a039f678cac036c1f Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Wed, 24 Jan 2024 13:57:12 +0000 Subject: [PATCH 1/2] Run `ANALYZE` after fiddling with stats (#16849) Introduced in #16833 Fixes #16844 --- changelog.d/16849.bugfix | 1 + .../delta/84/01_auth_links_stats.sql.postgres | 2 ++ .../delta/84/03_auth_links_analyze.sql.postgres | 16 ++++++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 changelog.d/16849.bugfix create mode 100644 synapse/storage/schema/main/delta/84/03_auth_links_analyze.sql.postgres diff --git a/changelog.d/16849.bugfix b/changelog.d/16849.bugfix new file mode 100644 index 000000000..1bbe2b9ad --- /dev/null +++ b/changelog.d/16849.bugfix @@ -0,0 +1 @@ +Fix database performance regression due to changing Postgres table statistics. Introduced in v1.100.0rc1. diff --git a/synapse/storage/schema/main/delta/84/01_auth_links_stats.sql.postgres b/synapse/storage/schema/main/delta/84/01_auth_links_stats.sql.postgres index b0b41bd10..0c3ae979e 100644 --- a/synapse/storage/schema/main/delta/84/01_auth_links_stats.sql.postgres +++ b/synapse/storage/schema/main/delta/84/01_auth_links_stats.sql.postgres @@ -16,3 +16,5 @@ -- figuring that out by itself. ALTER TABLE event_auth_chain_links ALTER origin_chain_id SET (n_distinct = -0.5); ALTER TABLE event_auth_chain_links ALTER target_chain_id SET (n_distinct = -0.5); + +-- We should have done an `ANALYZE event_auth_chain_links` here, but we forgot. diff --git a/synapse/storage/schema/main/delta/84/03_auth_links_analyze.sql.postgres b/synapse/storage/schema/main/delta/84/03_auth_links_analyze.sql.postgres new file mode 100644 index 000000000..aecb72a47 --- /dev/null +++ b/synapse/storage/schema/main/delta/84/03_auth_links_analyze.sql.postgres @@ -0,0 +1,16 @@ +-- +-- This file is licensed under the Affero General Public License (AGPL) version 3. +-- +-- Copyright (C) 2023 New Vector, Ltd +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- See the GNU Affero General Public License for more details: +-- . + +-- We need to do an ANALYZE after `01_auth_links_stats.sql.postgres`, where we +-- fiddled with the stats. +ANALYZE event_auth_chain_links; From 458c9f6a1591865e3b451c51045216445a3400ff Mon Sep 17 00:00:00 2001 From: "Olivier Wilkinson (reivilibre)" Date: Wed, 24 Jan 2024 14:18:35 +0000 Subject: [PATCH 2/2] 1.100.0rc3 --- CHANGES.md | 9 +++++++++ changelog.d/16849.bugfix | 1 - debian/changelog | 6 ++++++ pyproject.toml | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) delete mode 100644 changelog.d/16849.bugfix diff --git a/CHANGES.md b/CHANGES.md index e9478ea1a..d14e91e22 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,12 @@ +# Synapse 1.100.0rc3 (2024-01-24) + +### Bugfixes + +- Fix database performance regression due to changing Postgres table statistics. Introduced in v1.100.0rc1. ([\#16849](https://github.com/element-hq/synapse/issues/16849)) + + + + # Synapse 1.100.0rc2 (2024-01-24) This version is the same as 1.100.0rc1 but with fixes to the release process. diff --git a/changelog.d/16849.bugfix b/changelog.d/16849.bugfix deleted file mode 100644 index 1bbe2b9ad..000000000 --- a/changelog.d/16849.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix database performance regression due to changing Postgres table statistics. Introduced in v1.100.0rc1. diff --git a/debian/changelog b/debian/changelog index 5a86b6302..67212704b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +matrix-synapse-py3 (1.100.0~rc3) stable; urgency=medium + + * New Synapse release 1.100.0rc3. + + -- Synapse Packaging team Wed, 24 Jan 2024 14:18:15 +0000 + matrix-synapse-py3 (1.100.0~rc2) stable; urgency=medium * New Synapse release 1.100.0rc2. diff --git a/pyproject.toml b/pyproject.toml index d4cb01f7c..99c29cea2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -96,7 +96,7 @@ module-name = "synapse.synapse_rust" [tool.poetry] name = "matrix-synapse" -version = "1.100.0rc2" +version = "1.100.0rc3" description = "Homeserver for the Matrix decentralised comms protocol" authors = ["Matrix.org Team and Contributors "] license = "AGPL-3.0-or-later"