Hi,

The company I work for is having so much success that we are expanding worldwide :). We have to deploy our Cassandra servers worldwide too in order to improve the latency of our new abroad customers.

I am wondering about the process to grow from one data center to a few of them. First thing is we use EC2Snitch for now. So I guess we have to switch to Ec2MultiRegionSnitch.

Is that doable without any down-time ? 

Our C* cluster : C*1.2.2, 6 EC2 m1.xLarge in eu-west already running, wanting to add 3 m1.xLarge on us-east

I was planning to do it this way:

1/ Change the yaml conf on each of the 6 eu-west existing nodes
    - Ec2Snitch to Ec2MultiRegionSnitch
    - uncomment the broadcast_address and set the public ip of the node
    - let the private ip as defined right now the listen_address
    - switch seeds from private to public IP
2/ Rolling restart
    - nodetool disablegossip
    - nodetool disablethrift
    - nodetool drain
    - rm /path/cassandra/commitlog/* ? (I used to do it since drain was broken to avoid replaying counters logs, leading to overcounts, not sure how pertinent this is nowadays)
    - service cassandra stop
    - service cassandra start
3/
    - Make sure everything is still running smoothly in eu-west servers
4/
    - Add 3 nodes one by one with auto_bootstrap set to true.
5/
    - Repair nodes (one by one)
    - Cleanup nodes (one by one)


Questions :

a/ Do I have to move the tokens since I don't use vnodes yet ? How should I position all these nodes ?
b/ Is it useful to add a seed from the new us-east data center in the yaml of all nodes ?
c/ I am using the SimpleStrategy. Is it worth it/mandatory to change this strategy when using multiple DC ?
d/ With my 2 DC will I have 3 RF per DC or cross DC ?
e/ Should I configure my C* client to use the C* nodes from their region as coordinators  (which seems to me the good way) or should I configure all the servers everywhere ?

Any comment on the process described above would be appreciated, specially if you are arguing that something is wrong about it.

If you find out I am missing something, I will be glad to hear about it.

Alain