mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-04 19:57:45 +00:00
`Cache::get_or_load_many` looks up several keys at once and loads the misses with one call. Each key coalesces with loads already in flight, single or batched, and a key invalidated mid-load is answered but not cached. Waiters now get `None` for a key a batch load did not find, and a single load waiting on such a key loads it itself. `Cache::abandon_loads` stops every in-flight load from caching, for an invalidation that cannot name the keys it affects. A room purge uses it on the event cache, as the room of an event being loaded isn't known. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VpBQxvqZTUvHCMm3u6CR7J