synapse/tests
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
..
api Stabilize support for Retry-After header (MSC4014) (#16947) 2024-03-08 09:33:46 +00:00
app Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
appservice Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
config Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
crypto Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
events Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
federation Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
handlers Improve lock performance when a lot of locks are waiting (#16840) 2024-03-14 13:49:54 +00:00
http Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
logging Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
media Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
metrics Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
module_api Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
push Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
replication Bump black from 23.10.1 to 24.2.0 (#16936) 2024-03-13 16:46:44 +00:00
rest Bump mypy from 1.5.1 to 1.8.0 (#16901) 2024-03-13 17:05:57 +00:00
scripts Update license headers 2023-11-21 15:29:58 -05:00
server_notices Update license headers 2023-11-21 15:29:58 -05:00
state Update license headers 2023-11-21 15:29:58 -05:00
storage Bump black from 23.10.1 to 24.2.0 (#16936) 2024-03-13 16:46:44 +00:00
test_utils Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
types Use immutabledict instead of frozendict (#15113) 2023-03-22 17:15:34 +00:00
util Bump black from 23.10.1 to 24.2.0 (#16936) 2024-03-13 16:46:44 +00:00
__init__.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
server.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_distributor.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_event_auth.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_federation.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_mau.py Update license headers 2023-11-21 15:29:58 -05:00
test_phone_home.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_rust.py Add missing type hints to tests. (#15027) 2023-02-08 19:52:37 +00:00
test_server.py Update license headers 2023-11-21 15:29:58 -05:00
test_state.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_terms_auth.py Update license headers 2023-11-21 15:29:58 -05:00
test_test_utils.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_types.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_visibility.py Update license headers 2023-11-21 15:29:58 -05:00
unittest.py Bump black from 23.10.1 to 24.2.0 (#16936) 2024-03-13 16:46:44 +00:00
utils.py Improve lock performance when a lot of locks are waiting (#16840) 2024-03-14 13:49:54 +00:00