Fix ring tokens sorting regression introduced in #3601 #3815
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.
What this PR does:
I've introduced a regression in #3601 assuming that tokens are always sorted in the ring. Actually, recent versions of Cortex guarantee it but if your Cortex cluster has been created long time ago and tokens have been transferred from a leaving ingester to a joining one over and over they are still unsorted in the ring.
In this PR:
JOINING
ingester claim tokems from aLEAVING
oneDesc.GetTokens()
andDesc.getTokensByZone()
which was removed in Optimised Ring.ShuffleShard() and disabled subring cache in store-gateway, ruler and compactor #3601 (required to cover the time range during which ingesters of the new Cortex version are rolling out)release-1.7
My plan is:
release-1.7
Desc.GetTokens()
andDesc.getTokensByZone()
adding a CHANGELOG entry to require upgrade to Cortex 1.7 before upgrading to future version Cortex 1.8The performance impact for the sorting re-introduced in
Desc.GetTokens()
andDesc.getTokensByZone()
is pretty low:Ring.Get()
is not expected to be impacted, the little diff is just noise.Which issue(s) this PR fixes:
Fixes #3769
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]