0
0
Fork 1
mirror of https://mau.dev/maunium/synapse.git synced 2024-06-17 01:59:26 +02:00
synapse/synapse
Mathieu Velten cb562d73aa
Improve lock performance when a lot of locks are waiting (#16840)
When a lot of locks are waiting for a single lock, notifying all locks
independently with `call_later` on each release is really costly and
incurs some kind of async contention, where the CPU is spinning a lot
for not much.

The included test is taking around 30s before the change, and 0.5s
after.

It was found following failing tests with
https://github.com/element-hq/synapse/pull/16827.
2024-03-14 13:49:54 +00:00
..
_scripts
api
app
appservice
config
crypto
events
federation
handlers
http
logging
media
metrics
module_api
push
replication
res
rest
server_notices
spam_checker_api
state
static
storage
streams
synapse_rust
types
util
__init__.py
_pydantic_compat.py
event_auth.py
notifier.py
py.typed
server.py
visibility.py