Snitch

2 min to complete

Snitch

The Snitch is responsible for determining which racks and datacenters are to be written and read from. ScyllaDB supports the following snitches:

  • SimpleSnitch: Default value should only be used in single DC clusters
  • RackInferringSnitch: Binds nodes to DCs and racks according to their broadcast IP addresses.
  • GossipingPropertyFileSnitch: Explicitly define for each node in which Rack and DC it belongs. It’s better to use this instead of Simplesnitch
  • Ec2Snitch: Learns the topology on its own from AWS API. Useful for single region clusters deployed on AWS. The region is treated as a DC.
  • Ec2MultiRegionSnitch: Same as Ec2Snitch but for multiple region deployments.
  • GoogleCloudSnitch: For deploying ScyllaDB on the Google Cloud Engine (GCE) platform across one or more regions. The region is treated as a datacenter, and the availability zones are treated as racks within the datacenter.

More info can be found in the ScyllaDB Docs section.

To see the snitch defined in our multi-dc cluster, we use the describecluster command:

docker exec -it scylla-node1 nodetool describecluster

We can see that the Snitch being used is the GossipingPropertyFileSnitch. It allows us to explicitly define which DC and Rack a specific Node belongs to. This snitch reads its configuration from a cassandra-rackdc.properties file located under /etc/scylla/

docker exec -it  scylla-node1 cat /etc/scylla/cassandra-rackdc.properties
fa-angle-up