MatrixSynapse/synapse/handlers
Erik Johnston 0e0a2817a2
Yield during large v2 state res. (#7735)
State res v2 across large data sets can be very CPU intensive, and if
all the relevant events are in the cache the algorithm will run from
start to finish within a single reactor tick. This can result in
blocking the reactor tick for several seconds, which can have major
repercussions on other requests.

To fix this we simply add the occaisonal `sleep(0)` during iterations to
yield execution until the next reactor tick. The aim is to only do this
for large data sets so that we don't impact otherwise quick resolutions.=
2020-06-24 18:48:18 +01:00
..
ui_auth Convert identity handler to async/await. (#7561) 2020-05-26 13:46:22 -04:00
__init__.py Fix registration on workers (#4682) 2019-02-20 18:47:31 +11:00
_base.py Performance improvements and refactor of Ratelimiter (#7595) 2020-06-05 10:47:20 +01:00
account_data.py Remove unused `get_pagination_rows` methods. (#6557) 2019-12-17 11:44:32 +00:00
account_validity.py Fix buggy condition in account validity handler (#7074) 2020-03-16 12:16:30 +00:00
acme.py Small grammar fixes to the ACME v1 deprecation notice (#6944) 2020-02-21 08:53:01 +00:00
acme_issuing_service.py Allow configuration of the path used for ACME account keys. 2019-06-24 13:51:22 +01:00
admin.py Admin api to add an email address (#6789) 2020-02-07 10:29:36 +00:00
appservice.py Replace iteritems/itervalues/iterkeys with native versions. (#7692) 2020-06-15 07:03:36 -04:00
auth.py Fix a typo when comparing the URI & method during UI Auth. (#7689) 2020-06-12 14:12:04 -04:00
cas_handler.py Replace all remaining six usage with native Python 3 equivalents (#7704) 2020-06-16 08:51:47 -04:00
deactivate_account.py Add `local_current_membership` table (#6655) 2020-01-15 14:59:33 +00:00
device.py Fix "There was no active span when trying to log." error (#7698) 2020-06-15 16:42:21 +01:00
devicemessage.py Convert the device message and pagination handlers to async/await. (#7678) 2020-06-16 08:06:17 -04:00
directory.py Convert directory handler to async/await (#7727) 2020-06-22 07:18:00 -04:00
e2e_keys.py Replace iteritems/itervalues/iterkeys with native versions. (#7692) 2020-06-15 07:03:36 -04:00
e2e_room_keys.py Ensure etag is a string for GET room_keys/version response (#7691) 2020-06-15 13:42:44 -04:00
events.py Stop the master relaying USER_SYNC for other workers (#7318) 2020-04-22 22:39:04 +01:00
federation.py Yield during large v2 state res. (#7735) 2020-06-24 18:48:18 +01:00
groups_local.py Replace iteritems/itervalues/iterkeys with native versions. (#7692) 2020-06-15 07:03:36 -04:00
identity.py Convert identity handler to async/await. (#7561) 2020-05-26 13:46:22 -04:00
initial_sync.py Stop the master relaying USER_SYNC for other workers (#7318) 2020-04-22 22:39:04 +01:00
message.py Convert directory handler to async/await (#7727) 2020-06-22 07:18:00 -04:00
oidc_handler.py Cleanups to the OpenID Connect integration (#7628) 2020-06-03 21:13:17 +01:00
pagination.py Convert the device message and pagination handlers to async/await. (#7678) 2020-06-16 08:06:17 -04:00
password_policy.py Allow server admins to define and enforce a password policy (MSC2000). (#7118) 2020-03-26 16:51:13 +00:00
presence.py Refactor getting replication updates from database. (#7636) 2020-06-16 17:10:28 +01:00
profile.py Replace all remaining six usage with native Python 3 equivalents (#7704) 2020-06-16 08:51:47 -04:00
read_marker.py Port receipt and read markers to async/wait 2019-10-29 15:08:22 +00:00
receipts.py Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957) 2020-02-21 07:15:07 -05:00
register.py Convert the registration handler to async/await. (#7649) 2020-06-08 11:15:02 -04:00
room.py Replace all remaining six usage with native Python 3 equivalents (#7704) 2020-06-16 08:51:47 -04:00
room_list.py Replace iteritems/itervalues/iterkeys with native versions. (#7692) 2020-06-15 07:03:36 -04:00
room_member.py Replace all remaining six usage with native Python 3 equivalents (#7704) 2020-06-16 08:51:47 -04:00
room_member_worker.py Add ability to wait for replication streams (#7542) 2020-05-22 14:21:54 +01:00
saml_handler.py Clean up exception handling in SAML2ResponseResource (#7614) 2020-06-03 10:41:12 +01:00
search.py Convert search code to async/await. (#7460) 2020-05-11 15:12:39 -04:00
set_password.py Hash passwords earlier in the password reset process (#7538) 2020-05-20 09:48:03 -04:00
state_deltas.py Convert user directory handler and related classes to async/await. (#7640) 2020-06-05 14:42:55 -04:00
stats.py Convert user directory handler and related classes to async/await. (#7640) 2020-06-05 14:42:55 -04:00
sync.py Merge branch 'develop' into babolivier/mark_unread 2020-06-15 16:37:52 +01:00
typing.py Convert the typing handler to async/await. (#7679) 2020-06-17 10:37:59 -04:00
user_directory.py Replace iteritems/itervalues/iterkeys with native versions. (#7692) 2020-06-15 07:03:36 -04:00