You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Once the amount of metrics fed into graphite becomes large enough, it seems that the consistent hashring algorithm does not balance very effectively across the number of carbon-cache hosts. There is an open issue on the official graphite-carbon repo detailing some user stories and data regarding the hash ring and disk space allocation across carbon nodes. Additionally, there had been a Jump hashing algorithm written in Golang that appeared to fix the issue. Not sure what the implications on the rest of graphite components would be if implemented in the relay, but since it's in Golang as carbon-relay-ng is, I thought I'd mention it.
Yeah at booking their stack also switched to jmp for this reason. I'll gladly accept a PR for this especially when it's compatible with other jump hashing implementations in other graphite tools
Once the amount of metrics fed into graphite becomes large enough, it seems that the consistent hashring algorithm does not balance very effectively across the number of carbon-cache hosts. There is an open issue on the official graphite-carbon repo detailing some user stories and data regarding the hash ring and disk space allocation across carbon nodes. Additionally, there had been a Jump hashing algorithm written in Golang that appeared to fix the issue. Not sure what the implications on the rest of graphite components would be if implemented in the relay, but since it's in Golang as
carbon-relay-ng
is, I thought I'd mention it.Original issue is here: graphite-project/carbon#485
Jump hash code is here: https://github.com/dgryski/go-shardedkv/blob/475ce8b591f975aec7fb84640ac244d6bd3d7860/choosers/jump/jump.go#L27
The text was updated successfully, but these errors were encountered: