incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alain RODRIGUEZ <>
Subject Ec2Snitch to Ec2MultiRegionSnitch
Date Thu, 18 Apr 2013 14:41:37 GMT

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
    - Make sure everything is still running smoothly in eu-west servers
    - Add 3 nodes one by one with auto_bootstrap set to true.
    - 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.


View raw message