feat: use a ring buffer for the RoomListService
cache
#2246
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This will limit the memory used by the cache entries (while it was unbounded before). It's now possible to do this, since we have the
latest_room_event
handy for all the rooms; using the unbounded cache before was papering over the lack of that feature.We can bikeshed on the number of entries in this cache. It has to be small enough to not blow up memory (and keep the linear search over room id fast, but it's secondary), and high enough that we don't hit the full timeline re-build path that often.
Address a bullet point in #1911.