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 >> > >> >> >