diff options
author | Eric Eastwood <erice@element.io> | 2022-01-19 19:01:41 -0600 |
---|---|---|
committer | Eric Eastwood <erice@element.io> | 2022-01-19 19:01:41 -0600 |
commit | 780d35868e2ab0cd3ed9870755f99c96ddeb50c6 (patch) | |
tree | b844c8f43f36b34759f2a15dda8447c6af92ed95 | |
parent | Only share auth_event_ids when sender and type matches (diff) | |
download | synapse-780d35868e2ab0cd3ed9870755f99c96ddeb50c6.tar.xz |
Remove auth_event_id caching is it doesn't make a noticeable difference
-rw-r--r-- | synapse/handlers/room_batch.py | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/synapse/handlers/room_batch.py b/synapse/handlers/room_batch.py index 89dbbb0c89..9528c2ffe7 100644 --- a/synapse/handlers/room_batch.py +++ b/synapse/handlers/room_batch.py @@ -302,12 +302,6 @@ class RoomBatchHandler: # another event in the batch with the same type event_type_to_context_cache: Dict[str, EventContext] = {} - # Map from (event.sender, event.type) to auth_event_ids that we can re-use and create - # another event in the batch with the same sender and type - event_sender_and_type_to_auth_event_ids_cache: Dict[ - Tuple(str, str), List[str] - ] = {} - # Make the historical event chain float off on its own by specifying no # prev_events for the first event in the chain which causes the HS to # ask for the state at the start of the batch later. @@ -356,11 +350,6 @@ class RoomBatchHandler: # Cache the context so we can re-use it for events in # the batch that have the same type. event_type_to_context_cache[event.type] = context - # Cache the auth_event_ids so we can re-use it for events in - # the batch that have the same sender and type. - event_sender_and_type_to_auth_event_ids_cache[ - (event.sender, event.type) - ] = event.auth_event_ids() # Normally this is done when persisting the event but we have to # pre-emptively do it here because we create all the events first, @@ -381,27 +370,16 @@ class RoomBatchHandler: # TODO: Can we get away without this? Can't we just rely on validate_new below? # self.validator.validate_builder(builder) - resultant_auth_event_ids = ( - event_sender_and_type_to_auth_event_ids_cache.get( - (ev["sender"], ev["type"]) - ) + stripped_auth_event_ids = await self.event_creation_handler.strip_auth_event_ids_for_given_event_builder( + builder=builder, + prev_event_ids=prev_event_ids, + auth_event_ids=auth_event_ids, + depth=inherited_depth, ) - if resultant_auth_event_ids is None: - resultant_auth_event_ids = await self.event_creation_handler.strip_auth_event_ids_for_given_event_builder( - builder=builder, - prev_event_ids=prev_event_ids, - auth_event_ids=auth_event_ids, - depth=inherited_depth, - ) - # Cache the auth_event_ids so we can re-use it for events in - # the batch that have the same sender and type. - event_sender_and_type_to_auth_event_ids_cache[ - (ev["sender"], ev["type"]) - ] = resultant_auth_event_ids event = await builder.build( prev_event_ids=event_dict.get("prev_events"), - auth_event_ids=resultant_auth_event_ids.copy(), + auth_event_ids=stripped_auth_event_ids, depth=inherited_depth, ) # We can re-use the context per-event type because it will |