>  With N nodes, the ring is divided into N*num_tokens. Correct? 
There is always num_tokens tokens in the ring.
Each node has (num_tokens / N) * RF ranges on it. 

> so the ranges of keys are not uniform, although with enough nodes in the 
> cluster there probably won't be any really large ranges. Correct?
Even without vnodes there is no guarantee that nodes had contiguous key ranges. 

Cheers

-----------------
Aaron Morton
Freelance Cassandra Developer
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 6/02/2013, at 5:43 AM, Baron Schwartz <ba...@xaprb.com> wrote:

> As I understand the num_tokens setting, it makes Cassandra do the following 
> pseudocode when a new node is added:
> 
> for 1...num_tokens do
>    my_token = rand(0, 2^128-1)
>    next_token = min(tokens in cluster where token > my_token)
>    my_range = (my_token, next_token - 1)
> done
> 
> Now the new node owns num_tokens chunks of keys that previously belonged to 
> other nodes.
> 
> My point is, with 1 node in the cluster, the ring is divided into num_tokens 
> ranges. With N nodes, the ring is divided into N*num_tokens. Correct? The 
> docs do not make this clear for me.
> 
> And another point: the tokens are randomly chosen, so the ranges of keys are 
> not uniform, although with enough nodes in the cluster there probably won't 
> be any really large ranges. Correct?

Reply via email to