Reduce the amount of state we pull out (#15968)

This commit is contained in:
Erik Johnston 2023-07-20 10:46:37 +01:00 committed by GitHub
parent 67f9e5293e
commit ad52db3b5c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 12 deletions

1
changelog.d/15968.misc Normal file
View file

@ -0,0 +1 @@
Reduce the amount of state we pull out.

View file

@ -1581,9 +1581,7 @@ class FederationHandler:
event.content["third_party_invite"]["signed"]["token"], event.content["third_party_invite"]["signed"]["token"],
) )
original_invite = None original_invite = None
prev_state_ids = await context.get_prev_state_ids( prev_state_ids = await context.get_prev_state_ids(StateFilter.from_types([key]))
StateFilter.from_types([(EventTypes.ThirdPartyInvite, None)])
)
original_invite_id = prev_state_ids.get(key) original_invite_id = prev_state_ids.get(key)
if original_invite_id: if original_invite_id:
original_invite = await self.store.get_event( original_invite = await self.store.get_event(
@ -1636,7 +1634,7 @@ class FederationHandler:
token = signed["token"] token = signed["token"]
prev_state_ids = await context.get_prev_state_ids( prev_state_ids = await context.get_prev_state_ids(
StateFilter.from_types([(EventTypes.ThirdPartyInvite, None)]) StateFilter.from_types([(EventTypes.ThirdPartyInvite, token)])
) )
invite_event_id = prev_state_ids.get((EventTypes.ThirdPartyInvite, token)) invite_event_id = prev_state_ids.get((EventTypes.ThirdPartyInvite, token))

View file

@ -738,7 +738,7 @@ class EventCreationHandler:
prev_event_id = state_map.get((EventTypes.Member, event.sender)) prev_event_id = state_map.get((EventTypes.Member, event.sender))
else: else:
prev_state_ids = await unpersisted_context.get_prev_state_ids( prev_state_ids = await unpersisted_context.get_prev_state_ids(
StateFilter.from_types([(EventTypes.Member, None)]) StateFilter.from_types([(EventTypes.Member, event.sender)])
) )
prev_event_id = prev_state_ids.get((EventTypes.Member, event.sender)) prev_event_id = prev_state_ids.get((EventTypes.Member, event.sender))
prev_event = ( prev_event = (
@ -860,7 +860,7 @@ class EventCreationHandler:
return None return None
prev_state_ids = await context.get_prev_state_ids( prev_state_ids = await context.get_prev_state_ids(
StateFilter.from_types([(event.type, None)]) StateFilter.from_types([(event.type, event.state_key)])
) )
prev_event_id = prev_state_ids.get((event.type, event.state_key)) prev_event_id = prev_state_ids.get((event.type, event.state_key))
if not prev_event_id: if not prev_event_id:

View file

@ -473,7 +473,7 @@ class RoomMemberHandler(metaclass=abc.ABCMeta):
) )
context = await unpersisted_context.persist(event) context = await unpersisted_context.persist(event)
prev_state_ids = await context.get_prev_state_ids( prev_state_ids = await context.get_prev_state_ids(
StateFilter.from_types([(EventTypes.Member, None)]) StateFilter.from_types([(EventTypes.Member, user_id)])
) )
prev_member_event_id = prev_state_ids.get( prev_member_event_id = prev_state_ids.get(
@ -1340,7 +1340,7 @@ class RoomMemberHandler(metaclass=abc.ABCMeta):
requester = types.create_requester(target_user) requester = types.create_requester(target_user)
prev_state_ids = await context.get_prev_state_ids( prev_state_ids = await context.get_prev_state_ids(
StateFilter.from_types([(EventTypes.GuestAccess, None)]) StateFilter.from_types([(EventTypes.GuestAccess, "")])
) )
if event.membership == Membership.JOIN: if event.membership == Membership.JOIN:
if requester.is_guest: if requester.is_guest:
@ -1362,11 +1362,14 @@ class RoomMemberHandler(metaclass=abc.ABCMeta):
ratelimit=ratelimit, ratelimit=ratelimit,
) )
prev_member_event_id = prev_state_ids.get(
(EventTypes.Member, event.state_key), None
)
if event.membership == Membership.LEAVE: if event.membership == Membership.LEAVE:
prev_state_ids = await context.get_prev_state_ids(
StateFilter.from_types([(EventTypes.Member, event.state_key)])
)
prev_member_event_id = prev_state_ids.get(
(EventTypes.Member, event.state_key), None
)
if prev_member_event_id: if prev_member_event_id:
prev_member_event = await self.store.get_event(prev_member_event_id) prev_member_event = await self.store.get_event(prev_member_event_id)
if prev_member_event.membership == Membership.JOIN: if prev_member_event.membership == Membership.JOIN: