diff --git a/synapse/storage/relations.py b/synapse/storage/relations.py
index db4b842c97..1fd3d4fafc 100644
--- a/synapse/storage/relations.py
+++ b/synapse/storage/relations.py
@@ -21,6 +21,7 @@ from synapse.api.constants import RelationTypes
from synapse.api.errors import SynapseError
from synapse.storage._base import SQLBaseStore
from synapse.storage.stream import generate_pagination_where_clause
+from synapse.util.caches.descriptors import cached
logger = logging.getLogger(__name__)
@@ -109,6 +110,7 @@ class AggregationPaginationToken(object):
class RelationsStore(SQLBaseStore):
+ @cached(tree=True)
def get_relations_for_event(
self,
event_id,
@@ -216,6 +218,7 @@ class RelationsStore(SQLBaseStore):
"get_recent_references_for_event", _get_recent_references_for_event_txn
)
+ @cached(tree=True)
def get_aggregation_groups_for_event(
self,
event_id,
@@ -353,3 +356,8 @@ class RelationsStore(SQLBaseStore):
"aggregation_key": aggregation_key,
},
)
+
+ txn.call_after(self.get_relations_for_event.invalidate_many, (parent_id,))
+ txn.call_after(
+ self.get_aggregation_groups_for_event.invalidate_many, (parent_id,)
+ )
|