Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit a0acdfa

Browse files
authored
Converts event_federation and registration databases to async/await (#8061)
1 parent 61d8ff0 commit a0acdfa

File tree

7 files changed

+150
-177
lines changed

7 files changed

+150
-177
lines changed

changelog.d/8061.misc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Convert various parts of the codebase to async/await.

synapse/storage/databases/main/event_federation.py

+13-25
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@
1515
import itertools
1616
import logging
1717
from queue import Empty, PriorityQueue
18-
from typing import Dict, List, Optional, Set, Tuple
19-
20-
from twisted.internet import defer
18+
from typing import Dict, Iterable, List, Optional, Set, Tuple
2119

2220
from synapse.api.errors import StoreError
2321
from synapse.metrics.background_process_metrics import run_as_background_process
@@ -286,17 +284,13 @@ def get_oldest_events_with_depth_in_room_txn(self, txn, room_id):
286284

287285
return dict(txn)
288286

289-
@defer.inlineCallbacks
290-
def get_max_depth_of(self, event_ids):
287+
async def get_max_depth_of(self, event_ids: List[str]) -> int:
291288
"""Returns the max depth of a set of event IDs
292289
293290
Args:
294-
event_ids (list[str])
295-
296-
Returns
297-
Deferred[int]
291+
event_ids: The event IDs to calculate the max depth of.
298292
"""
299-
rows = yield self.db_pool.simple_select_many_batch(
293+
rows = await self.db_pool.simple_select_many_batch(
300294
table="events",
301295
column="event_id",
302296
iterable=event_ids,
@@ -550,17 +544,16 @@ def _get_backfill_events(self, txn, room_id, event_list, limit):
550544

551545
return event_results
552546

553-
@defer.inlineCallbacks
554-
def get_missing_events(self, room_id, earliest_events, latest_events, limit):
555-
ids = yield self.db_pool.runInteraction(
547+
async def get_missing_events(self, room_id, earliest_events, latest_events, limit):
548+
ids = await self.db_pool.runInteraction(
556549
"get_missing_events",
557550
self._get_missing_events,
558551
room_id,
559552
earliest_events,
560553
latest_events,
561554
limit,
562555
)
563-
events = yield self.get_events_as_list(ids)
556+
events = await self.get_events_as_list(ids)
564557
return events
565558

566559
def _get_missing_events(self, txn, room_id, earliest_events, latest_events, limit):
@@ -595,17 +588,13 @@ def _get_missing_events(self, txn, room_id, earliest_events, latest_events, limi
595588
event_results.reverse()
596589
return event_results
597590

598-
@defer.inlineCallbacks
599-
def get_successor_events(self, event_ids):
591+
async def get_successor_events(self, event_ids: Iterable[str]) -> List[str]:
600592
"""Fetch all events that have the given events as a prev event
601593
602594
Args:
603-
event_ids (iterable[str])
604-
605-
Returns:
606-
Deferred[list[str]]
595+
event_ids: The events to use as the previous events.
607596
"""
608-
rows = yield self.db_pool.simple_select_many_batch(
597+
rows = await self.db_pool.simple_select_many_batch(
609598
table="event_edges",
610599
column="prev_event_id",
611600
iterable=event_ids,
@@ -674,8 +663,7 @@ def _clean_room_for_join_txn(self, txn, room_id):
674663
txn.execute(query, (room_id,))
675664
txn.call_after(self.get_latest_event_ids_in_room.invalidate, (room_id,))
676665

677-
@defer.inlineCallbacks
678-
def _background_delete_non_state_event_auth(self, progress, batch_size):
666+
async def _background_delete_non_state_event_auth(self, progress, batch_size):
679667
def delete_event_auth(txn):
680668
target_min_stream_id = progress.get("target_min_stream_id_inclusive")
681669
max_stream_id = progress.get("max_stream_id_exclusive")
@@ -714,12 +702,12 @@ def delete_event_auth(txn):
714702

715703
return min_stream_id >= target_min_stream_id
716704

717-
result = yield self.db_pool.runInteraction(
705+
result = await self.db_pool.runInteraction(
718706
self.EVENT_AUTH_STATE_ONLY, delete_event_auth
719707
)
720708

721709
if not result:
722-
yield self.db_pool.updates._end_background_update(
710+
await self.db_pool.updates._end_background_update(
723711
self.EVENT_AUTH_STATE_ONLY
724712
)
725713

0 commit comments

Comments
 (0)