We currently have 2 datacenters and a ring of 5 Cassandra servers on each datacenter. We are getting new hardware, and after evaluating them, plan to upgrade the ring to the new hardware.

 

Is there any recommended procedure for doing so? This is one of the options we are considering:

 

1.       Add new hardware servers to cluster

a.       To calculate the initial_token for the new cluster, assume that you will only have the new server ring.

b.      If there is no clash of token with existing ring, assign the new servers those tokens. Otherwise increment the clashing tokens by 1, and assign it to the new servers.

c.       Add the servers one by one.

2.       Remove old servers

a.       Remove the servers one by one by doing “nodetool decommission”.

Or, is some other strategy, like adding a new server, and then removing an old server a better option?

 

Also, does anyone have any experience running a cluster with heterogeneous hardware.

 

Old Hardware: 2 quad core processors, 32 GB RAM, four 1-TB disks

New Hardware: 2 8-core processors, 128 GB RAM, eight 1-TB disks

 

Cassandra version: 1.1.5.

 

Thanks,

Arindam