Store: make index cache shared cache friendly #1825
Merged
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.
The
IndexCache
is an in-memory cache whose exposed interface allow to cache single Postings and Series. In Cortex we've an experimental TSDB blocks storage integration based on Thanos and we would like to introduce a shared index cache (based on Memcached).The current
IndexCache
interface is not shared cache friendly, due to the fact that the exposed functions allow to fetch/store single items. In this PR I'm proposing to switchIndexCache
to an interface which allows to fetch multiple postings and series at once, in order to make it shared cache friendly.Fixed #1815
Changes
cache.go
toinmemory.go
IndexCache
to multiple fetch postings and series within a single callFetch
andStore
for clarityDue to the file renaming, the diff is quite difficult to follow, reason why I've splitted into two separate commits (it should help).
Verification
Unit and manual tests.