Hi all, apologies for writing to this mailing list but I tried the user mailing list, 2 slack channels, reddit and 3 discord channels and got horrible and confused answers.
I'm working on a school project trying to reproduce the tokens distribution algorithm described in the dynamo db paper. All I want to build is a cluster where nodes can join/leave managing vnodes distribution just like in Cassandra (I don't care about r/w, replication,....) I believe I understand how everything works without vnodes. But everything stops making sense when introducing vnodes. For example, when a new node joins a cluster new vnodes need to be created. Why adding vnodes does not create a massive redistribution of data in the cluster? afterall, adding vnodes means that every vnode in the cluster has to "give up" some data to other vnodes in order to keep a balanced load across the cluster. >From the documentation it seems like only the portion of the ring associated with the node should soffer this redistribution but why does a node have a portion of the partition ring associated with it when the vnodes stored on the node may be from any portion of the ring? As you can see, I'm quite confused! I understand that to give me a full answer may take you too much time but if you could just point me in the right direction, tell me where should I look in the source code, or share some links (I've already read anything on the apache website/datastax.....Ive even read riak documentation trying to find clues) that would be amazing! Thanks a lot for your time and keep up the great work, I love Cassandra! Norman