diff options
author | Sean Quah <8349537+squahtx@users.noreply.github.com> | 2022-07-07 13:19:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-07 12:19:31 +0000 |
commit | 1391a76cd2b287daebe61f7d8ea03b258ed522f5 (patch) | |
tree | 9a0265253ca0dd85b3fd12df1b2b3068f360554d /synapse/handlers/federation.py | |
parent | Use a single query in `ProfileHandler.get_profile` (#13209) (diff) | |
download | synapse-1391a76cd2b287daebe61f7d8ea03b258ed522f5.tar.xz |
Faster room joins: fix race in recalculation of current room state (#13151)
Bounce recalculation of current state to the correct event persister and move recalculation of current state into the event persistence queue, to avoid concurrent updates to a room's current state. Also give recalculation of a room's current state a real stream ordering. Signed-off-by: Sean Quah <seanq@matrix.org>
Diffstat (limited to 'synapse/handlers/federation.py')
-rw-r--r-- | synapse/handlers/federation.py | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index 3c44b4bf86..e2564e9340 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -1559,14 +1559,9 @@ class FederationHandler: # all the events are updated, so we can update current state and # clear the lazy-loading flag. logger.info("Updating current state for %s", room_id) - # TODO(faster_joins): support workers + # TODO(faster_joins): notify workers in notify_room_un_partial_stated # https://github.com/matrix-org/synapse/issues/12994 - assert ( - self._storage_controllers.persistence is not None - ), "worker-mode deployments not currently supported here" - await self._storage_controllers.persistence.update_current_state( - room_id - ) + await self.state_handler.update_current_state(room_id) logger.info("Clearing partial-state flag for %s", room_id) success = await self.store.clear_partial_state_room(room_id) |