-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
disable index dedupe when rf > 1 and current or upcoming index type is boltdb-shipper #2206
disable index dedupe when rf > 1 and current or upcoming index type is boltdb-shipper #2206
Conversation
Codecov Report
@@ Coverage Diff @@
## master #2206 +/- ##
==========================================
+ Coverage 61.62% 61.65% +0.03%
==========================================
Files 160 160
Lines 13577 13586 +9
==========================================
+ Hits 8367 8377 +10
+ Misses 4588 4586 -2
- Partials 622 623 +1
|
I was hoping we wouldn't need this if we could update cortex to fix the underlying issue? |
I am not sure which issue we are talking about here. This is based on a change in Cortex that I did which helped with this. |
Another note, this problem is specific to only boltdb shipper because all the other stores have strong consistency while boltdb shipper doesn't. |
I will look at this closer, maybe it's the naming that confuses me. We don't want to disable write de-duplication of chunks, we still want the chunks to be written to the cache. Instead we just want to make sure when a chunk is already in the cache we still write the index entry. This does get more complicated however if the filesystem is not shared, I will look closer at this. |
1fc5b02
to
66d68de
Compare
@slim-bean I have changed the flag in Cortex to allow disabling of just index deduplication. If enabled, it would still write just the index even if the chunk is already written. |
…e index and still dedupes chunks
66d68de
to
1ed418b
Compare
@slim-bean let us merge this PR which has a helper function to check whether current or upcoming index store is of type |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
What this PR does / why we need it:
We use dedupe caches for chunks and seriesIDs to determine whether we already have written a chunk or a seriesID already to the store. Since
boltdb-shipper
only uploads boltdb files periodically to make the index available to all the other services, an ingester which first wrote a chunk or seriesID goes down and other ingesters didn't write them due to deduplication, we would be missing some logs in query responses until that ingester is down. This would be a problem even during rollouts.This PR disables index deduplication and avoid using write dedupe cache(which dedupes seriesIDs) when replication factor > 1 and current or upcoming index type is
boltdb-shipper
.Checklist