-
Notifications
You must be signed in to change notification settings - Fork 107
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
How to add a new backend host to a fnv1a_ch cluster with a replication factor of 1? #283
Comments
looking at the man page, the following jumps out at me:
Is this the reason for the behavior I observed? |
Hello @mwtzzz, So, you should rebalance your cluster after adding a node. You can use carbonate (but it supports only |
@deniszh Thanks for your quick response and for providing these two suggestions. I think I'm going to look at the Merge option. If I go with Merge, should I still rebalance? |
It depends. I think too much merging will make rendering slow after some point. Also, note that whisper size is fixed (if you not using sparse files), so, adding new host will cause the creation of K/N new whisper files, which will consume disk space. |
I'm testing buckytools, but it says it doesn't support fnv1a_ch:
Is there another way to rebalance the cluster? |
@jjneely: fnv1a_ch indeed seems unimplemented, would you accept a patch adding it? Looks as if the change would mostly be adding code to hashing.go, I could try adding it. |
@grobian Thanks for working on it. If you make a patch, I'll test it on my cluster of 12 hosts, each of which has about 600GB of metric data. |
Hi @grobian any success with a patch? |
haven't got the spare cycles to look into it yet, sorry |
@mwtzzz - you can migrate to jump_fnv1a_hash - you will need to move more data, ofc, but only once |
@deniszh What are the steps to migrate from fnv1a_ch to jump_fnv1a_ch ? |
@grobian Thanks for working on it. Do you have a patch I can test out? |
@mwtzzz : sorry, disregard my advise - graphite-web doesn't support jump_fnv1a_ch, so, you'll need or migrate to carbon_ch or use something like go-carbon + carbonzipper |
I can't seem to build bucktools (my go is too new or something?) so no patch. Seems like it's not necessary either if you don't use carbonzipper. |
Thanks for working on it, I'll think about what my next steps will be. |
Adding it to buckytools is not that trivial, because it port is currently ignored, and the fnv1a_ch hash type needs it. |
Yep, I tried to add it to buckytools too, but lost. |
Ok, I'll test it out soon. |
I installed your patch and am running buckyd on each of our 12 hosts as follows:
Am I running it correctly? |
I think |
Also please note that if you're using non-2003 port and/or instance names - they also need to be included, like |
my relay config looks like this:
I took your suggestion and tried running buckyd like this:
|
What |
Here are the
|
let's move this to the buckytools issue. |
If we can get buckytools working with fnv1a_ch, that would be fantastic. |
@grobian I'll try your patch again this weekend. Maybe I'm not running |
I'm no expert on buckytools, if I find some cycles, I'll try myself |
That would be great |
Hi @grobian I'm just getting back at looking at this issue. I got pulled away on other things at work but now I need to take a look again. Have you had a chance to try making a patch? |
I thought we concluded in jjneely/buckytools#17 :) |
Oh wow, I missed that! Excellent, let me try it out today. Thanks! |
@grobian I'm having issues with version 0.40. Would you mind taking a look at my comment in jjneely/buckytools#17 ? |
Hi, my understanding (admittedly without spending much time thinking about it), was that I could simply add an additional host to the fnv1a_ch cluster definition (replication factor 1) and (a) existing metrics would still be routed to the same hosts as before; (b) while brand-new metrics would start to make their way to the new host. I assumed that the hashing mechanism would contine to route existing metrics as before.
But this isn't the case. I added a new host, and it immediately starting receiving an even spread of metrics that were previously going to the other hosts. Of course this had the result of our frontend giving unpredictable and incorrect graphs.
My question is: what is the proper way to add a new backend host?
I'm using instance ids. my cluster definition looks like this:
The text was updated successfully, but these errors were encountered: