23
23
from synapse .storage .event_federation import EventFederationWorkerStore
24
24
from synapse .storage .event_push_actions import EventPushActionsWorkerStore
25
25
from synapse .storage .events_worker import EventsWorkerStore
26
+ from synapse .storage .relations import RelationsWorkerStore
26
27
from synapse .storage .roommember import RoomMemberWorkerStore
27
28
from synapse .storage .signatures import SignatureWorkerStore
28
29
from synapse .storage .state import StateGroupWorkerStore
@@ -52,6 +53,7 @@ class SlavedEventStore(EventFederationWorkerStore,
52
53
EventsWorkerStore ,
53
54
SignatureWorkerStore ,
54
55
UserErasureWorkerStore ,
56
+ RelationsWorkerStore ,
55
57
BaseSlavedStore ):
56
58
57
59
def __init__ (self , db_conn , hs ):
@@ -89,7 +91,7 @@ def process_replication_rows(self, stream_name, token, rows):
89
91
for row in rows :
90
92
self .invalidate_caches_for_event (
91
93
- token , row .event_id , row .room_id , row .type , row .state_key ,
92
- row .redacts ,
94
+ row .redacts , row . relates_to ,
93
95
backfilled = True ,
94
96
)
95
97
return super (SlavedEventStore , self ).process_replication_rows (
@@ -102,7 +104,7 @@ def _process_event_stream_row(self, token, row):
102
104
if row .type == EventsStreamEventRow .TypeId :
103
105
self .invalidate_caches_for_event (
104
106
token , data .event_id , data .room_id , data .type , data .state_key ,
105
- data .redacts ,
107
+ data .redacts , data . relates_to ,
106
108
backfilled = False ,
107
109
)
108
110
elif row .type == EventsStreamCurrentStateRow .TypeId :
@@ -114,7 +116,8 @@ def _process_event_stream_row(self, token, row):
114
116
raise Exception ("Unknown events stream row type %s" % (row .type , ))
115
117
116
118
def invalidate_caches_for_event (self , stream_ordering , event_id , room_id ,
117
- etype , state_key , redacts , backfilled ):
119
+ etype , state_key , redacts , relates_to ,
120
+ backfilled ):
118
121
self ._invalidate_get_event_cache (event_id )
119
122
120
123
self .get_latest_event_ids_in_room .invalidate ((room_id ,))
@@ -136,3 +139,8 @@ def invalidate_caches_for_event(self, stream_ordering, event_id, room_id,
136
139
state_key , stream_ordering
137
140
)
138
141
self .get_invited_rooms_for_user .invalidate ((state_key ,))
142
+
143
+ if relates_to :
144
+ self .get_relations_for_event .invalidate_many ((relates_to ,))
145
+ self .get_aggregation_groups_for_event .invalidate_many ((relates_to ,))
146
+ self .get_applicable_edit .invalidate ((relates_to ,))
0 commit comments