Thanks a lot Hannu,

really helpful! But isn't that crazy expensive? adding a vnode means that
every vnode in the cluster will have a different range of tokens which
means a lot of data will need to be moved around.

Thanks again,
Luca



On Wed, Jun 15, 2022 at 12:25 AM Hannu Kröger <hkro...@gmail.com> wrote:

> When a node joins a cluster, it gets (semi-)random tokens based on
> num_tokens value.
>
> Total amount of vnodes is not fixed. I don’t remember top of my hat if
> num_tokens can be different on each node but whenever you add a node, new
> vnodes get “created”. Existing token ranges will be split and some range
> will be allocated for the new node and data is being replicated to the
> joining node. So if you have num_tokens set to a higher value like 16 or
> so, adding and removing a single node in a cluster is standard operation
> and although it causes some load on the cluster, it should be somewhat
> evenly distributed among other nodes. If you have just a single token per
> node then scaling up or down has a bit different effects due to balancing
> issues etc. So there is a reason why default num_tokens is 16 currently.
>
> Cheers,
> Hannu
>
> On 15. Jun 2022, at 10.12, Luca Rondanini <luca.rondan...@gmail.com>
> wrote:
>
> ok, that makes sense, but does the partitioner add vnodes? is the number
> of vnodes fixed in a cluster?
>
> On Wed, Jun 15, 2022 at 12:10 AM Hannu Kröger <hkro...@gmail.com> wrote:
>
>> Hey,
>>
>> num_tokens is tokens per node.
>>
>> So in your case you would have 15 vnodes altogether.
>>
>> Cheers,
>> Hannu
>>
>> > On 15. Jun 2022, at 10.08, Luca Rondanini <luca.rondan...@gmail.com>
>> wrote:
>> >
>> > Hi all,
>> >
>> > I'm just trying to understand better how cassandra works.
>> >
>> > My understanding is that, once set, the number of vnodes does not
>> change in a cluster. The partitioner allocates vnodes to nodes ensuring
>> replication data are not stored on the same node.
>> >
>> > But what happens if there are more nodes than vnodes? If I set
>> num_tokens to 3 and I have 5 servers? Unless the partitioner adds vnodes
>> and moves data around but it seems an extremely expensive operation. I'm
>> sure I'm missing something, I'm not quite sure what! :)
>> >
>> > Thanks,
>> > Luca
>> >
>>
>>
>

Reply via email to