You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Seth Edwards <se...@pubnub.com> on 2015/02/10 01:59:55 UTC

Question about adding nodes to a cluster

I am on Cassandra 1.2.19 and I am following the documentation for adding
existing nodes to a cluster
<http://www.datastax.com/docs/1.1/cluster_management#adding-capacity-to-an-existing-cluster>
.

We are choosing to double our cluster from six to twelve. I ran the token
generator. Based on what I read in the documentation, I expected to see the
same first six tokens and six new tokens. Instead I see almost the same
tokens but off by a few numbers. Is this expected? Should I change the
similar tokens to the new ones? Am I doing it wrong?


Here is the output I am dealing with.

With six:

DC #1:
  Node #1:                                        0
  Node #2:   28356863910078205288614550619314017621
  Node #3:   56713727820156410577229101238628035242
  Node #4:   85070591730234615865843651857942052863
  Node #5:  113427455640312821154458202477256070484
  Node #6:  141784319550391026443072753096570088105

With twelve:

DC #1:
  Node #01:                                        0
  Node #02:   14178431955039102644307275309657008810
  Node #03:   28356863910078205288614550619314017620
  Node #04:   42535295865117307932921825928971026430
  Node #05:   56713727820156410577229101238628035240
  Node #06:   70892159775195513221536376548285044050
  Node #07:   85070591730234615865843651857942052860
  Node #08:   99249023685273718510150927167599061670
  Node #09:  113427455640312821154458202477256070480
  Node #10:  127605887595351923798765477786913079290
  Node #11:  141784319550391026443072753096570088100
  Node #12:  155962751505430129087380028406227096910

Re: Question about adding nodes to a cluster

Posted by Robert Coli <rc...@eventbrite.com>.
On Mon, Feb 9, 2015 at 5:25 PM, Seth Edwards <se...@pubnub.com> wrote:

> I see what you are saying. So basically take whatever existing token I
> have and divide it by 2, give or take a couple of tokens?
>

Yep! "bisect the token ranges" if you want to be fancy about it.

=Rob

Re: Question about adding nodes to a cluster

Posted by Seth Edwards <se...@pubnub.com>.
I see what you are saying. So basically take whatever existing token I have
and divide it by 2, give or take a couple of tokens?

On Mon, Feb 9, 2015 at 5:17 PM, Robert Coli <rc...@eventbrite.com> wrote:

> On Mon, Feb 9, 2015 at 4:59 PM, Seth Edwards <se...@pubnub.com> wrote:
>
>> We are choosing to double our cluster from six to twelve. I ran the token
>> generator. Based on what I read in the documentation, I expected to see the
>> same first six tokens and six new tokens. Instead I see almost the same
>> tokens but off by a few numbers. Is this expected? Should I change the
>> similar tokens to the new ones? Am I doing it wrong?
>>
>
> In your existing cluster, your first token is at
> 28356863910078205288614550619314017621, which ends in an odd number.
>
> You cannot therefore choose a new token which exactly bisects its range,
> because a node cannot own the token 28356863910078205288614550619314017621
> /2 =
> 14178431955039102644307275309657008810.5 ... because tokens are integers.
>
> You will however notice that floor() of your current token divided by two
> is your new token (14178431955039102644307275309657008810).
>
> I would personally keep my existing 6 tokens and do the simple math myself
> of bisecting their ranges, not move my existing tokens around by one or two
> tokens.
>
> =Rob
>
>
>
>
>
>
>

Re: Question about adding nodes to a cluster

Posted by Robert Coli <rc...@eventbrite.com>.
On Mon, Feb 9, 2015 at 4:59 PM, Seth Edwards <se...@pubnub.com> wrote:

> We are choosing to double our cluster from six to twelve. I ran the token
> generator. Based on what I read in the documentation, I expected to see the
> same first six tokens and six new tokens. Instead I see almost the same
> tokens but off by a few numbers. Is this expected? Should I change the
> similar tokens to the new ones? Am I doing it wrong?
>

In your existing cluster, your first token is at
28356863910078205288614550619314017621, which ends in an odd number.

You cannot therefore choose a new token which exactly bisects its range,
because a node cannot own the token 28356863910078205288614550619314017621
/2 =
14178431955039102644307275309657008810.5 ... because tokens are integers.

You will however notice that floor() of your current token divided by two
is your new token (14178431955039102644307275309657008810).

I would personally keep my existing 6 tokens and do the simple math myself
of bisecting their ranges, not move my existing tokens around by one or two
tokens.

=Rob

Re[2]: Question about adding nodes to a cluster

Posted by "Plotnik, Alexey" <ap...@rhonda.ru>.
Sorry, No - you are not doing it wrong ^)


Yes, Cassandra partitioner is based on hash ring. Doubling number of nodes is the best cluster exctending policy I've ever seen, because it's zero-overhead.

Hashring - you get MD5 max (2^128-1), divide it by number of nodes (partitions) getting N points and then evenly distribute them across you ring. You can open Python script you used to generate the following output ans see how it works.



I am on Cassandra 1.2.19 and I am following the documentation for adding existing nodes to a cluster<http://www.datastax.com/docs/1.1/cluster_management#adding-capacity-to-an-existing-cluster>.

We are choosing to double our cluster from six to twelve. I ran the token generator. Based on what I read in the documentation, I expected to see the same first six tokens and six new tokens. Instead I see almost the same tokens but off by a few numbers. Is this expected? Should I change the similar tokens to the new ones? Am I doing it wrong?


Here is the output I am dealing with.

With six:

DC #1:
  Node #1:                                        0
  Node #2:   28356863910078205288614550619314017621
  Node #3:   56713727820156410577229101238628035242
  Node #4:   85070591730234615865843651857942052863
  Node #5:  113427455640312821154458202477256070484
  Node #6:  141784319550391026443072753096570088105

With twelve:

DC #1:
  Node #01:                                        0
  Node #02:   14178431955039102644307275309657008810
  Node #03:   28356863910078205288614550619314017620
  Node #04:   42535295865117307932921825928971026430
  Node #05:   56713727820156410577229101238628035240
  Node #06:   70892159775195513221536376548285044050
  Node #07:   85070591730234615865843651857942052860
  Node #08:   99249023685273718510150927167599061670
  Node #09:  113427455640312821154458202477256070480
  Node #10:  127605887595351923798765477786913079290
  Node #11:  141784319550391026443072753096570088100
  Node #12:  155962751505430129087380028406227096910

Re: Question about adding nodes to a cluster

Posted by "Plotnik, Alexey" <ap...@rhonda.ru>.
Yes, Cassandra partitioner is based on hash ring. Doubling number of nodes is the best cluster exctending policy I've ever seen, because it's zero-overhead.

Hashring - you get MD5 max (2^128-1), divide it by number of nodes (partitions) getting N points and then evenly distribute them across you ring. You can open Python script you used to generate the following output ans see how it works.



I am on Cassandra 1.2.19 and I am following the documentation for adding existing nodes to a cluster<http://www.datastax.com/docs/1.1/cluster_management#adding-capacity-to-an-existing-cluster>.

We are choosing to double our cluster from six to twelve. I ran the token generator. Based on what I read in the documentation, I expected to see the same first six tokens and six new tokens. Instead I see almost the same tokens but off by a few numbers. Is this expected? Should I change the similar tokens to the new ones? Am I doing it wrong?


Here is the output I am dealing with.

With six:

DC #1:
  Node #1:                                        0
  Node #2:   28356863910078205288614550619314017621
  Node #3:   56713727820156410577229101238628035242
  Node #4:   85070591730234615865843651857942052863
  Node #5:  113427455640312821154458202477256070484
  Node #6:  141784319550391026443072753096570088105

With twelve:

DC #1:
  Node #01:                                        0
  Node #02:   14178431955039102644307275309657008810
  Node #03:   28356863910078205288614550619314017620
  Node #04:   42535295865117307932921825928971026430
  Node #05:   56713727820156410577229101238628035240
  Node #06:   70892159775195513221536376548285044050
  Node #07:   85070591730234615865843651857942052860
  Node #08:   99249023685273718510150927167599061670
  Node #09:  113427455640312821154458202477256070480
  Node #10:  127605887595351923798765477786913079290
  Node #11:  141784319550391026443072753096570088100
  Node #12:  155962751505430129087380028406227096910