summary refs log tree commit diff
path: root/synapse/storage/databases/state/bg_updates.py
diff options
context:
space:
mode:
authorDevon Hudson <devon.dmytro@gmail.com>2025-03-21 17:09:49 +0000
committerGitHub <noreply@github.com>2025-03-21 17:09:49 +0000
commit1efb826b54f4a8fdfa56c27a32da9c332fa87cc3 (patch)
tree2c458e7e5d9dd483689359b30fc0cedc34d83083 /synapse/storage/databases/state/bg_updates.py
parentUpdate Poetry to 2.1.1, including updating the lock file version. (#18251) (diff)
downloadsynapse-1efb826b54f4a8fdfa56c27a32da9c332fa87cc3.tar.xz
Delete unreferenced state groups in background (#18254)
This PR fixes #18154 to avoid de-deltaing state groups which resulted in
DB size temporarily increasing until the DB was `VACUUM`'ed. As a
result, less state groups will get deleted now.
It also attempts to improve performance by not duplicating work when
processing state groups it has already processed in previous iterations.

### Pull Request Checklist

<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->

* [X] Pull request is based on the develop branch
* [X] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
  - Use markdown where necessary, mostly for `code blocks`.
  - End with either a period (.) or an exclamation mark (!).
  - Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [X] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html) is
correct
(run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))

---------

Co-authored-by: Erik Johnston <erikj@element.io>
Diffstat (limited to 'synapse/storage/databases/state/bg_updates.py')
-rw-r--r--synapse/storage/databases/state/bg_updates.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/synapse/storage/databases/state/bg_updates.py b/synapse/storage/databases/state/bg_updates.py

index f7824cba0f..95fd0ae73a 100644 --- a/synapse/storage/databases/state/bg_updates.py +++ b/synapse/storage/databases/state/bg_updates.py
@@ -20,7 +20,15 @@ # import logging -from typing import TYPE_CHECKING, Dict, List, Mapping, Optional, Tuple, Union +from typing import ( + TYPE_CHECKING, + Dict, + List, + Mapping, + Optional, + Tuple, + Union, +) from synapse.logging.opentracing import tag_args, trace from synapse.storage._base import SQLBaseStore