Types of snitches
Hyper-Converged Database (HCD) provides the following types of snitches:
-
SimpleSnitch (default)
Treats Strategy order as proximity. This can improve cache locality when disabling read repair. Only appropriate for single-datacenter deployments.
-
GossipingPropertyFileSnitch
This snitch is recommended for production.
It uses rack and datacenter information for the local node defined in the
cassandra-rackdc.properties
file and propagates this information to other nodes via gossip.
-
PropertyFileSnitch
This snitch determines proximity as determined by rack and datacenter. It uses the network details located in the
cassandra-topology.properties
file.When using this snitch, define datacenter names using a standard convention, and make sure that the datacenter names correlate to the name of your datacenters in the keyspace definition. Every node in the cluster should be described in the
cassandra-topology.properties
file, which must be exactly the same on every node in the cluster. -
AlibabaCloudSnitch
A snitch for the Alibaba Cloud platform. It assumes the Alibaba Elastic Compute Service (ECS) region is a datacenter and an ECS availability zone is a rack. The format of the zone ID is
cn-hangzhou-a
wherecn
stands for China,hangzhou
is the Hangzhou region, anda
is the availability zone ID. -
CloudstackSnitch
A snitch for the Apache Cloudstack platform that assumes a Cloudstack zone follows the typical convention
country-location-availability_zone
and uses the country/location tuple as a datacenter and the availability zone as a rack. -
Ec2Snitch
Use this snitch for simple cluster deployments on Amazon EC2 where all nodes in the cluster are within a single region.
In EC2 deployments, the region name is treated as the datacenter name, and availability zones are treated as racks within a datacenter. For example, if a node is in the
us-east-1
region,us-east
is the datacenter name and1
is the rack location. (Racks are important for distributing replicas, but not for datacenter naming.) Because private IPs are used, this snitch does not work across multiple regions. -
Ec2MultiRegionSnitch
Use this snitch for deployments on Amazon EC2 where the cluster spans multiple regions.
You must configure settings in both the
cassandra.yaml
file and the property filecassandra-rackdc.properties
used by theEc2MultiRegionSnitch
. -
GoogleCloudSnitch
A snitch for the Google Cloud Platform. The GCP region is treated as a datacenter, and the availability zones are treated as racks within the datacenter. All communication occurs over private IP addresses within the same logical network.
-
RackInferringSnitch
This snitch determines the proximity of nodes by datacenter and rack, which are assumed to correspond to the second and third octet of the node’s IP address, respectively. It is best used as an example for writing a custom snitch class (unless this format happens to match your deployment conventions).