cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maxim Potekhin <potek...@bnl.gov>
Subject Re: About initial token, autobootstraping and load balance
Date Sat, 14 Jan 2012 19:30:28 GMT
I'm just wondering -- what's wrong with manual specification of tokens? 
I'm so glad I did it and have not had problems with balancing and all.

Before I was indeed stuck with 25/25/50 setup in a 3 machine cluster, 
when had to move tokens to make it 33/33/33 and I screwed up a little in 
that the first one did not start with 0, which is not a good idea.

Maxim

On 1/13/2012 2:10 PM, David McNelis wrote:
> The documentation for that section needs to be updated...
>
> What happens is that if you just autobootstrap without setting a token 
> it will by default bisect the range of the largest node.
>
> So if you go through several iterations of adding nodes, then this is 
> what you would see:
>
> Gen 1:
> Node A:  100% of tokens, token range 1-10 (for example)
>
> Gen 2:
> Node A: 50% of tokens  (1-5)
> Node B: 50% of tokens (6-10)
>
> Gen 3:
> Node A: 25% of tokens (1-2.5)
> Node B: 50% of tokens (6-10)
> Node C: 25% of tokens (2.6-5)
>
> In reality, what you'd want in gen 3 is every node to be 33%, but it 
> would not be the case without setting the tokens to begin with.
>
> You'll notice that there are a couple of scripts available to generate 
> a list of  initial tokens for your particular cluster size, then ever 
> time you add a node you'll need to update all the nodes with new 
> tokens in order to properly load balance.
>
> Does this make sense?
>
> Other folks, am I explaining this correctly?
>
> David
>
> 2012/1/13 Carlos Pérez Miguel <cperezmig@gmail.com 
> <mailto:cperezmig@gmail.com>>
>
>     Hello,
>
>     I have a doubt about how initial token is determined. In Cassandra's
>     documentation it is said that it is better to manually configure the
>     initial token to each node in the system but also is said that if
>     initial token is not defined and autobootstrap is true, new nodes
>     choose initial token in order to better the load balance of the
>     cluster. But what happens if no initial token is chosen and
>     autobootstrap is not activated? How each node selects its initial
>     token to balance the ring?
>
>     I ask this because I am making tests with a 20 nodes cassandra cluster
>     with cassandra 0.7.9. Any node has initial token, nor
>     autobootstraping. I restart the cluster with each test I want to make
>     and in the end the cluster is always well balanced.
>
>     Thanks
>
>     Carlos Pérez Miguel
>
>


Mime
View raw message