diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2021-06-01 12:04:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-01 12:04:47 +0100 |
commit | b4b2fd2ecee26214fa6b322bcb62bec1ea324c1a (patch) | |
tree | c4a891eb04c4b1cfe763921e08bd8725d61cf70a /synapse/storage/databases/main/cache.py | |
parent | Fix opentracing inject to use the SpanContext, not the Span (#10074) (diff) | |
download | synapse-b4b2fd2ecee26214fa6b322bcb62bec1ea324c1a.tar.xz |
add a cache to have_seen_event (#9953)
Empirically, this helped my server considerably when handling gaps in Matrix HQ. The problem was that we would repeatedly call have_seen_events for the same set of (50K or so) auth_events, each of which would take many minutes to complete, even though it's only an index scan.
Diffstat (limited to 'synapse/storage/databases/main/cache.py')
-rw-r--r-- | synapse/storage/databases/main/cache.py | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/synapse/storage/databases/main/cache.py b/synapse/storage/databases/main/cache.py index f7872501a0..c57ae5ef15 100644 --- a/synapse/storage/databases/main/cache.py +++ b/synapse/storage/databases/main/cache.py @@ -168,6 +168,7 @@ class CacheInvalidationWorkerStore(SQLBaseStore): backfilled, ): self._invalidate_get_event_cache(event_id) + self.have_seen_event.invalidate((room_id, event_id)) self.get_latest_event_ids_in_room.invalidate((room_id,)) |