riak 2 - how much space is needed for online resizing?

Max Vernimmen m.vernimmen at comparegroup.eu
Wed Sep 3 02:50:02 EDT 2014


Hi Jordan,

Thank you for your response.
With a ringsize of 64 on 5 nodes we have a remainder of 4 parts on one node. These parts are 1/64th each, so about 6,25% of the total size ending up on 1 node in addition to the equally spread out content.
When we would move to 128 parts this would become a remainder of 3, but since the ring is 2x as large, each part is only 1/128 in size. So about 2,3% of the total size will end up on 1 node in addition to the equally spread out content. For 256 it becomes 0,4%.
To me that looks like a very big improvement. You said it wouldn’t make much difference, am I making a mistake in my reasoning?

I did a google on claim_v3 and it looks like it could help, so I’m going to try it. Rebuilding the cluster is not really an option at this time. Would changing the claim method improve the situation for an existing cluster also? I would think that because of the automatic rebalancing, the vnodes would move due to the different claiming mechanism, am I right?

Yes, now that 2.0.0 has been shipped we are looking to upgrade before making any changes.
Thanks,

Max

From: Jordan West [mailto:jwest at basho.com]
Sent: dinsdag 2 september 2014 23:17
To: Max Vernimmen
Cc: riak-users at lists.basho.com
Subject: Re: riak 2 - how much space is needed for online resizing?

Hi Max,

A ring resize won't make things much better. It is intended to change the number of partitions from 64, in your case, to 32 or 256, for example. While these rings sizes may have better distributions with 5 nodes they will not be perfect. The quickest solution using the existing cluster and settings would be to add 3 nodes (for a total of 8) or remove one (for a total of 4) -- we don't suggest the latter, you can read more about why in [1], but decide based on your application's needs. There are a few other options but they are more complicated. Somewhat related, since you are using a pre-build, is this development/test data? Do you have the option of re-building the cluster? If you would like to stick with 5 nodes and can re-build the cluster from scratch, another alternative is to try "claim_v3" (the default is v2). See wants_claim_fun and choose_claim_fun in [2]. You'll want to set these to wants_claim_v3 and choose_claim_v3, repsectively, in the riak_core section of your advanced.config. It may result in a better, albeit not perfect, balance.

To answer your original question about capacity, a conservative rule is, below 50% capacity on every node.

I would also suggest upgrading to a more recent build.

Jordan


[1] http://basho.com/why-your-riak-cluster-should-have-at-least-five-nodes/
[2] http://docs.basho.com/riak/1.4.10/ops/advanced/configs/configuration-files/

On Tue, Sep 2, 2014 at 5:21 AM, Max Vernimmen <m.vernimmen at comparegroup.eu<mailto:m.vernimmen at comparegroup.eu>> wrote:
Hi,

We have 5 riak nodes running riak-2.0.0pre20-1.el6.x86_64 with a ringsize of 64. We would like to do a ring resize because the distribution of content is very uneven (64/5 has a left over of 4 parts that all end up on the same node). The documentation says riak-2 can do this online (http://docs.basho.com/riak/2.0.0/ops/advanced/ring-resizing/) and warns 'Make sure that you have sufficient storage to complete the resize operation'.

Could anyone tell me how much is ‘sufficient’?
And in addition, some of the nodes in the cluster have more free space available than other nodes (some are at 40% used disk, others at 60%). Is the location of the space important?

Thank you,


Max

_______________________________________________
riak-users mailing list
riak-users at lists.basho.com<mailto:riak-users at lists.basho.com>
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20140903/0c0b3cb3/attachment.html>


More information about the riak-users mailing list