On 24 May 2011, at 23:58, Sameer Farooqui wrote: > Even with AutoBootstrap it is recommended that you always specify the > InitialToken on the new node because the picking of an initial token will > almost certainly result in an unbalanced ring. > > Right now, I'm afraid that if you simply copied the YAML file from one of the > two nodes to the 3rd node, then the 3rd node has an incorrect initial_token > setting (it may be conflicting with node 1 or 2's range). > > Some info about how to choose tokens: > http://wiki.apache.org/cassandra/Operations#Token_selection > http://journal.paul.querna.org/articles/2010/09/24/cassandra-token-selection/ > > So, once you know what token each of the 3 nodes should have, shut down the > first two nodes, change their tokens and add the correct token to the 3rd > node (in the YAML file).
At the moment I'm not bothered about balance - just having it work at all would be good! initial_token is currently blank (i.e. self-defining according to the docs) on all nodes - I can see why that might cause balance issues, but I don't see that it would prevent it working as there should not be a token clash. If there was a token clash, wouldn't it throw an error saying so? That second article, while wonderfully practical and informative, suggests that cassandra is really not suited to rapid scaling up or down - i.e. adding or removing nodes is neither quick nor painless, e.g. scaling from 5 to 20 nodes and back is something that might happen over weeks rather than minutes. Maybe cassandra just isn't the right tool for the job in this case? Marcus