Thanks Aaron and Manu.
num_tokens is only used at bootstrapI think it's also used in this case (already bootstrapped with num_tokens = 1 and now num_tokens > 1). Cassandra will split a node's current range into *num_tokens* parts and there should be no change to the amount of ring a node holds before shuffling.
On Wed, Feb 13, 2013 at 3:12 AM, aaron morton <email@example.com> wrote:
Restore the settings for num_tokens and intial_token to what they were before you upgraded.They should not be changed just because you are upgrading to 1.2, they are used to enable virtual nodes. Which are not necessary to run 1.2.Cheers
On 13/02/2013, at 8:02 AM, Daning Wang <firstname.lastname@example.org> wrote:No, I did not run shuffle since the upgrade was not successful.what do you mean "reverting the changes to num_tokens and inital_token"? set num_tokens=1? initial_token should be ignored since it is not bootstrap. right?Thanks,DaningOn Tue, Feb 12, 2013 at 10:52 AM, aaron morton <email@example.com> wrote:
Were you upgrading to 1.2 AND running the shuffle or just upgrading to 1.2?
If you have not run shuffle I would suggest reverting the changes to num_tokens and inital_token. This is a guess because num_tokens is only used at bootstrap.Just get upgraded to 1.2 first, then do the shuffle when things are stable.CheersOn 12/02/2013, at 2:55 PM, Daning Wang <firstname.lastname@example.org> wrote:Thanks Aaron.I tried to migrate existing cluster(ver 1.1.0) to 1.2.1 but failed.- I followed http://www.datastax.com/docs/1.2/install/upgrading, have merged cassandra.yaml, with follow parameternum_tokens: 256#initial_token: 0the 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 statusDatacenter: datacenter1=======================Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address Load Tokens Owns Host ID RackDN 10.210.101.117 45.01 GB 254 99.2% f4b6afe3-7e2e-4c61-96e8-12a529a31373 rack1UN 10.210.101.120 45.43 GB 256 0.4% 0fd912fb-3187-462b-8c8a-7d223751b649 rack1UN 10.210.101.111 27.08 GB 256 0.4% bd4c37bc-07dd-488b-bfab-e74e32c26f6e rack1What was wrong? please help. I could provide more information if you need.Thanks,DaningOn Mon, Feb 4, 2013 at 9:16 AM, aaron morton <email@example.com> wrote:There is a command line utility in 1.2 to shuffle the tokens…$ ./cassandra-shuffle --helpMissing sub-command argument.Usage: shuffle [options] <sub-command>Sub-commands:create Initialize a new shuffle operationls List pending relocationsclear Clear pending relocationsen[able] Enable shufflingdis[able] Disable shufflingOptions:-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)CheersOn 3/02/2013, at 11:32 PM, Manu Zhang <firstname.lastname@example.org> 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).