Cassandra in a Public Cloud – Which Snitch

cassandra

I am planning on deploying Cassandra in a public cloud (like Amazon AWS). The cluster will span multiple zones and regions. The cluster will also require logical DC separation within a given region. I know that this is achievable using the Ec2MultiRegionSnitch and the logical DC separation can be achieved using the "dc_suffix" parameter in the cassandra-rackdc.properties file. I also know that this can be achieved using the GosspingPropertyFileSnitch by assigning DC and RACK values to each Node in the same aforementoined file.

Since both snitches can be used to achieve my needs, then what is the benefit of using one snitch over the other? Are there any specific pros and cons to using the Cloud specific snitch over the Gossip based snitch in a public cloud? Any restrictions to one over the other in the public cloud?

I have googled around myself and while there is plenty of information regarding each snitch, I can't seem to find anything related to why one snitch would be preferred over the other in the public cloud.

Any guidance is greatly appreciated.

Best Answer

The biggest advantage of the GosspingPropertyFileSnitch is that you can easily migrate your cluster to another cloud without downtime, just by creating a new DC in another cloud, replicate data to that DC and decomission old DC. With provider-specific snitches, such migration may not be possible at all.