You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by Apache Wiki <wi...@apache.org> on 2011/02/04 02:45:51 UTC

[Cassandra Wiki] Update of "FAQ" by MatthewDennis

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.

The "FAQ" page has been changed by MatthewDennis.
The comment on this change is: correctly suggest that InitialToken not be left blank.
http://wiki.apache.org/cassandra/FAQ?action=diff&rev1=102&rev2=103

--------------------------------------------------

  == What happens to existing data in my cluster when I add new nodes? ==
  Starting a new node with the -b [bootstrap] option will cause it to contact other nodes in the cluster to copy the right data to itself.
  
- In Cassandra 0.5 and above, there is an "AutoBootStrap" option in the config file. When enabled, using the "-b" options is unnecessary, because new nodes will automatically bootstrap themselves when they start up for the first time. It is recommended that you leave "InitialToken" blank for these versions, because the improved bootstrap process will pick a balanced Token for each node.
+ In Cassandra 0.5 and above, there is an "AutoBootStrap" option in the config file. When enabled, using the "-b" options is unnecessary, because new nodes will automatically bootstrap themselves when they start up for the first time. Even with AutoBootstrap it is recommended that you always specify the InitialToken because the picking of an initial token will almost certainly result in an unbalanced ring.  If you are building the initial cluster you certainly don't want to leave InitialToken blank.  Pick the tokens such that the ring will be balanced afterward and explicitly set them on each node.  See [[Operations#Token_selection|token selection]] in the operations wiki.
  
- Under no circumstances should you introduce a new empty node to your cluster and have autoboostrap disabled.  In version 0.7 under write load it will cause writes to be sent to the new node before the schema arrives from another member of the cluster.  This would also indicate to clients that the new node is responsible for servicing reads for data that it definitely doesn't have.
+ Unless you know precisely what you're doing and are aware of how the Cassandra internals work you should never introduce a new empty node to your cluster and have autoboostrap disabled.  In version 0.7 under write load it will cause writes to be sent to the new node before the schema arrives from another member of the cluster.  This would also indicate to clients that the new node is responsible for servicing reads for data that it definitely doesn't have.
  
  In Cassandra 0.4 and below, it is recommended that you manually specify a value for "InitialToken" in the config file of a new node.