原文:
# endpoint_snitch -- Set this to a class that implements
# IEndpointSnitch. The snitch has two functions:
# - it teaches Cassandra enough about your network topology to route
# requests efficiently
# - it allows Cassandra to spread replicas around your cluster to avoid
# correlated failures. It does this by grouping machines into
# "datacenters" and "racks." Cassandra will do its best not to have
# more than one replica on the same "rack" (which may not actually
# be a physical location)
#
# IF YOU CHANGE THE SNITCH AFTER DATA IS INSERTED INTO THE CLUSTER,
# YOU MUST RUN A FULL REPAIR, SINCE THE SNITCH AFFECTS WHERE REPLICAS
# ARE PLACED.
#
# Out of the box, Cassandra provides
# - SimpleSnitch:
# Treats Strategy order as proximity. This improves cache locality
# when disabling read repair, which can further improve throughput.
# Only appropriate for single-datacenter deployments.
# - PropertyFileSnitch:
# Proximity is determined by rack and data center, which are
# explicitly configured in cassandra-topology.properties.
# - GossipingPropertyFileSnitch
# The rack and datacenter for the local node are defined in
# cassandra-rackdc.properties and propagated to other nodes via gossip. If
# cassandra-topology.properties exists, it is used as a fallback, allowing
# migration from the PropertyFileSnitch.
# - RackInferringSnitch:
# Proximity is determined by rack and data center, which are
# assumed to correspond to the 3rd and 2nd octet of each node's
# IP address, respectively. Unless this happens to match your
# deployment conventions (as it did Facebook's), this is best used
# as an example of writing a custom Snitch class.
# - Ec2Snitch:
# Appropriate for EC2 deployments in a single Region. Loads Region
# and Availability Zone information from the EC2 API. The Region is
# treated as the datacenter, and the Availability Zone as the rack.
# Only private IPs are used, so this will not work across multiple
# Regions.
# - Ec2MultiRegionSnitch:
# Uses public IPs as broadcast_address to allow cross-region
# connectivity. (Thus, you should set seed addresses to the public
# IP as well.) You will need to open the storage_port or
# ssl_storage_port on the public IP firewall. (For intra-Region
# traffic, Cassandra will switch to the private IP after
# establishing a connection.)
#
# You can use a custom Snitch by setting this to the full class name
# of the snitch, which will be assumed to be on your classpath.
意訳:
# [endpoint_snitch]
#
# IEndpointSnitch を実装したクラスを設定します。
# Snitch は 2 つの機能を持ちます:
#
# - ネットワーク・トポロジーに対し、リクエストを効率的に送る情報を Cassandra に教えます。
#
# - Cassandta が、異常を避けてクラスタにレプリカを広げる事を可能にします。
# そのために、datacenter と rack にグルーピングします。
# Cassandra は同じ rack (実際の設置場所を違うかもしれない) の上に 1 つを超えるレプリカを持たないために最善を尽くします。
#
# もし、データを格納後のクラスタに対して Snitch を変更する場合は、full-repair を実行しなければいけません。
# Cassandra は次の Snitch を提供します:
#
# - SimpleSnitch:
# ソースを見ると "rack1" と "datacenter1" を常に返す実装である。
# 理由は分からんが、read-repair を無効にするとキャッシュの局所性が改善されてスループットを改善できるらしい。
# 単一データセンターで構築するのに適している。
#
# - PropertyFileSnitch:
# Proximity は rack と datacenter によって決定されます。
# それは cassandra-topology.properties ファイルにて明示的に設定します。
#
# - GossipingPropertyFileSnitch
# Proximity は rack と datacenter によって決定されます。
# ローカルノードの rack と datacenter は、cassandra-rackdc.properties ファイルにて定義し、gossip によって他ノードに伝えられます。
# もし cassandra-topology.properties ファイルが存在している場合は fallback として使用され PropertyFileSnitch への移行を可能にします。
#
# - RackInferringSnitch:
# Proximity は、各ノードの IP アドレスの第 2, 第 3 オクテットによって推測される rack と datacenter によって決定されます。
# もしあなたの IP アドレスのルールが異なる場合は、カスタム Snitch を作成する例として最も使用されます。
#
# - Ec2Snitch:
# Appropriate for EC2 deployments in a single Region.
# Loads Region and Availability Zone information from the EC2 API.
# The Region is treated as the datacenter, and the Availability Zone as the rack.
# Only private IPs are used, so this will not work across multiple Regions.
#
# - Ec2MultiRegionSnitch:
# Uses public IPs as broadcast_address to allow cross-region connectivity.
# Thus, you should set seed addresses to the public IP as well.
# You will need to open the storage_port or ssl_storage_port on the public IP firewall.
# For intra-Region traffic, Cassandra will switch to the private IP after establishing a connection.
#
# カスタム Snitch を使用したい場合は、カスタム Snitch の完全修飾クラス名を設定します。
# また、カスタム Snitch は Cassandra のクラスパスに含める必要があります。
おわり