Allow disabling of ring heartbeats by setting relevant options to zero.#4344
Conversation
ec7bb89 to
2b238af
Compare
pracucci
left a comment
There was a problem hiding this comment.
The solution you've picked should work.
Initially, I thought that we should not set Timestamp when the instance is registered in the ring and we should not update it when an InstanceDesc is updated, but then I've realised memberlist actually requires that Timestamp change each time we do update InstanceDesc so we have to keep all that logic and just disabled the hearbeating part.
However, I would update the ring web page to clearly state when heartbeating is disabled.
tomwilkie
left a comment
There was a problem hiding this comment.
LGTM;
+1 to Marco's suggestion on including the heartbeat value / disabled on the ring info page.
Not related to this change, but why is there so much duplication of ring config now?
I had the same worry that memberlist relies on the Timestamp to resolve conflicts but it looks that the Timestamp is updated whenever the ring state is updated (example). This makes sense as in my testing with very long heartbeats, I didn't encounter any issues. Will update the status page |
|
It doesn't seem trivial to add the heartbeat period to the status page, as the configuration actually exists in the lifecycler :/ Any suggestions? |
The easiest (but probably) hackiest one is to add the heartbeat period to |
Can't speak to the history but I agree there is a lot of duplication? |
I'm the guilty one. Long time ago (when we built the blocks storage) we duplicated (once) the ring config to slim it down. The |
Signed-off-by: Steve Simpson <steve.simpson@grafana.com>
Signed-off-by: Steve Simpson <steve.simpson@grafana.com>
380233c to
010ff2f
Compare
pracucci
left a comment
There was a problem hiding this comment.
The improvement to the HTTP ring page can be done in a follow up PR.
|
I'd love to learn more about the motivation behind this PR (and #4342). I couldn't find much docs on this feature. Does this improve availability by ignoring heartbeat failures? |
|
Updating a KV store every few seconds is difficult to scale past 100-200 ingesters. Some of the story is here: https://grafana.com/blog/2020/02/11/how-were-abusing-hashicorps-consul-at-grafana-labs/ |
…o. (cortexproject#4344) * Allow disabling of ring heartbeats by setting relevant options to zero. Signed-off-by: Steve Simpson <steve.simpson@grafana.com> * Review comments. Signed-off-by: Steve Simpson <steve.simpson@grafana.com> Signed-off-by: Alvin Lin <alvinlin@amazon.com>
What this PR does:
Allow disabling of ring heartbeats by setting relevant options to zero.
Depends on #4342
Checklist
CHANGELOG.mdupdated - the order of entries should be[CHANGE],[FEATURE],[ENHANCEMENT],[BUGFIX]