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

Commit

Permalink
Don't needlessly batch in add_event_to_cache
Browse files Browse the repository at this point in the history
We've already batched up the events previously, and assume in other
places in the events.py file that we have. Removing this makes it easier
to adjust the batch sizes in one place.
  • Loading branch information
erikjohnston committed Sep 8, 2021
1 parent 5154afc commit 76f6b87
Showing 1 changed file with 24 additions and 27 deletions.
51 changes: 24 additions & 27 deletions synapse/storage/databases/main/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -1547,35 +1547,32 @@ def _add_to_cache(self, txn, events_and_contexts):
to_prefill = []

rows = []
N = 200
for i in range(0, len(events_and_contexts), N):
ev_map = {e[0].event_id: e[0] for e in events_and_contexts[i : i + N]}
if not ev_map:
break

sql = (
"SELECT "
" e.event_id as event_id, "
" r.redacts as redacts,"
" rej.event_id as rejects "
" FROM events as e"
" LEFT JOIN rejections as rej USING (event_id)"
" LEFT JOIN redactions as r ON e.event_id = r.redacts"
" WHERE "
)

clause, args = make_in_list_sql_clause(
self.database_engine, "e.event_id", list(ev_map)
)
ev_map = {e.event_id: e for e, _ in events_and_contexts}
if not ev_map:
return

txn.execute(sql + clause, args)
rows = self.db_pool.cursor_to_dict(txn)
for row in rows:
event = ev_map[row["event_id"]]
if not row["rejects"] and not row["redacts"]:
to_prefill.append(
_EventCacheEntry(event=event, redacted_event=None)
)
sql = (
"SELECT "
" e.event_id as event_id, "
" r.redacts as redacts,"
" rej.event_id as rejects "
" FROM events as e"
" LEFT JOIN rejections as rej USING (event_id)"
" LEFT JOIN redactions as r ON e.event_id = r.redacts"
" WHERE "
)

clause, args = make_in_list_sql_clause(
self.database_engine, "e.event_id", list(ev_map)
)

txn.execute(sql + clause, args)
rows = self.db_pool.cursor_to_dict(txn)
for row in rows:
event = ev_map[row["event_id"]]
if not row["rejects"] and not row["redacts"]:
to_prefill.append(_EventCacheEntry(event=event, redacted_event=None))

def prefill():
for cache_entry in to_prefill:
Expand Down

0 comments on commit 76f6b87

Please sign in to comment.