2 files changed, 16 insertions, 1 deletions
diff --git a/synapse/storage/devices.py b/synapse/storage/devices.py
index d22db0a0b9..7b5903bf8e 100644
--- a/synapse/storage/devices.py
+++ b/synapse/storage/devices.py
@@ -517,7 +517,7 @@ class DeviceStore(SQLBaseStore):
WHERE stream_id > ?
"""
return self._execute(
- "get_users_and_hosts_device_list", None,
+ "get_all_device_list_changes_for_remotes", None,
sql, from_key,
)
diff --git a/synapse/storage/events.py b/synapse/storage/events.py
index 2d3020edfe..8506421b67 100644
--- a/synapse/storage/events.py
+++ b/synapse/storage/events.py
@@ -311,6 +311,21 @@ class EventsStore(SQLBaseStore):
new_forward_extremeties[room_id] = new_latest_event_ids
+ len_1 = (
+ len(latest_event_ids) == 1
+ and len(new_latest_event_ids) == 1
+ )
+ if len_1:
+ all_single_prev_not_state = all(
+ len(event.prev_events) == 1
+ and not event.is_state()
+ for event, ctx in ev_ctx_rm
+ )
+ # Don't bother calculating state if they're just
+ # a long chain of single ancestor non-state events.
+ if all_single_prev_not_state:
+ continue
+
state = yield self._calculate_state_delta(
room_id, ev_ctx_rm, new_latest_event_ids
)
|