mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-10 00:40:02 -04:00
Optimise backfill calculation (#12522)
Try to avoid an OOM by checking fewer extremities. Generally this is a big rewrite of _maybe_backfill, to try and fix some of the TODOs and other problems in it. It's best reviewed commit-by-commit.
This commit is contained in:
parent
e75c7e3b6d
commit
17d99f758a
5 changed files with 168 additions and 106 deletions
|
@ -419,6 +419,13 @@ async def _event_to_memberships(
|
|||
return {}
|
||||
|
||||
# for each event, get the event_ids of the membership state at those events.
|
||||
#
|
||||
# TODO: this means that we request the entire membership list. If there are only
|
||||
# one or two users on this server, and the room is huge, this is very wasteful
|
||||
# (it means more db work, and churns the *stateGroupMembersCache*).
|
||||
# It might be that we could extend StateFilter to specify "give me keys matching
|
||||
# *:<server_name>", to avoid this.
|
||||
|
||||
event_to_state_ids = await storage.state.get_state_ids_for_events(
|
||||
frozenset(e.event_id for e in events),
|
||||
state_filter=StateFilter.from_types(types=((EventTypes.Member, None),)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue