Thanks Aaron.

I tried to migrate existing cluster(ver 1.1.0) to 1.2.1 but failed.

- I followed, have merged cassandra.yaml, with follow parameter

num_tokens: 256
#initial_token: 0

the initial_token is commented out, current token should be obtained from system schema

- I did rolling upgrade, during the upgrade, I got "Borken Pipe" error from the nodes with old version, is that normal?

- After I upgraded 3 nodes(still have 5 to go), I found it is total wrong, the first node upgraded owns 99.2 of ring

[cassy@d5:/usr/local/cassy conf]$  ~/bin/nodetool -h localhost status
Datacenter: datacenter1
|/ State=Normal/Leaving/Joining/Moving
--  Address           Load       Tokens  Owns   Host ID                               Rack
DN    45.01 GB   254     99.2%  f4b6afe3-7e2e-4c61-96e8-12a529a31373  rack1
UN    45.43 GB   256     0.4%   0fd912fb-3187-462b-8c8a-7d223751b649  rack1
UN    27.08 GB   256     0.4%   bd4c37bc-07dd-488b-bfab-e74e32c26f6e  rack1

What was wrong? please help. I could provide more information if you need.



On Mon, Feb 4, 2013 at 9:16 AM, aaron morton <> wrote:
There is a command line utility in 1.2 to shuffle the tokens…

$ ./cassandra-shuffle --help
Missing sub-command argument.
Usage: shuffle [options] <sub-command>

 create           Initialize a new shuffle operation
 ls               List pending relocations
 clear            Clear pending relocations
 en[able]         Enable shuffling
 dis[able]        Disable shuffling

 -dc,  --only-dc           Apply only to named DC (create only)
 -tp,  --thrift-port       Thrift port number (Default: 9160)
 -p,   --port              JMX port number (Default: 7199)
 -tf,  --thrift-framed     Enable framed transport for Thrift (Default: false)
 -en,  --and-enable        Immediately enable shuffling (create only)
 -H,   --help              Print help information
 -h,   --host              JMX hostname or IP address (Default: localhost)
 -th,  --thrift-host       Thrift hostname or IP address (Default: JMX host)


Aaron Morton
Freelance Cassandra Developer
New Zealand


On 3/02/2013, at 11:32 PM, Manu Zhang <> wrote:

On Sun 03 Feb 2013 05:45:56 AM CST, Daning Wang wrote:
I'd like to upgrade from 1.1.6 to 1.2.1, one big feature in 1.2 is
that it can have multiple tokens in one node. but there is only one
token in 1.1.6.

how can I upgrade to 1.2.1 then breaking the token to take advantage
of this feature? I went through this doc but it does not say how to
change the num_token

Is there other doc about this upgrade path?



I think for each node you need to change the num_token option in conf/cassandra.yaml (this only split the current range into num_token parts) and run the bin/cassandra-shuffle command (this spread it all over the ring).