On Wed, Dec 3, 2014 at 10:10 AM, Robert Wille <rwi...@fold3.com> wrote:

>  Load and ownership didn’t correlate nearly as well as I expected. I have
> lots and lots of very small records. I would expect very high correlation.
>
>  I think the moral of the story is that I shouldn’t delete the system
> directory. If I have issues with a node, I should recommission it properly.
>

If you always specify initial_token in cassandra.yaml, then you are
protected from some cases similar to the one that you seem to have just
encountered.

Wish I had actually managed to post this on a blog, but :


--- cut ---

example of why :

https://issues.apache.org/jira/browse/CASSANDRA-5571

11:22 < rcoli> but basically, explicit is better than implicit
11:22 < rcoli> the only reason ppl let cassandra pick tokens is that it's
semi-complex to do "right" with vnodes
11:22 < rcoli> but once it has picked tokens
11:22 < rcoli> you know what they are
11:22 < rcoli> why have a risky conf file that relies on implicit state?
11:23 < rcoli> just put the tokens in the conf file. done.
11:23 < rcoli> then you can use auto_bootstrap:false even if you lose
system keyspace, etc.

I plan to write a short blog post about this, but...

I recommend that anyone using Cassandra, vnodes or not, always explicitly
populate their initial_token line in cassandra.yaml. There are a number of
cases where you will lose if you do not do so, and AFAICT no cases where
you lose by doing so.

If one is using vnodes and wants to do this, the process goes like :

1) set num_tokens to the desired number of vnodes
2) start node/bootstrap
3) use a one liner like jeffj's :

"
nodetool info -T | grep ^Token | awk '{ print $3 }' | tr \\n , | sed -e
's/,$/\n/'
"

to get a comma delimited list of the vnode tokens

4) insert this comma delimited list in initial_tokens, and comment out
num_tokens (though it is a NOOP)

 --- cut ---

=Rob

Reply via email to