## org.apache.cassandra.locator
Class DynamicEndpointSnitch

    java.lang.Object
      org.apache.cassandra.locator.AbstractEndpointSnitch
          org.apache.cassandra.locator.DynamicEndpointSnitch

All Implemented Interfaces:
  DynamicEndpointSnitchMBean, IEndpointSnitch, ILatencySubscriber

    public class DynamicEndpointSnitch

extends AbstractEndpointSnitch
implements ILatencySubscriber, DynamicEndpointSnitchMBean

A dynamic snitch that sorts endpoints by latency with an adapted phi failure detector

Field Summary
`IEndpointSnitch` `subsnitch`

Constructor Summary
`DynamicEndpointSnitch(IEndpointSnitch snitch)`

Method Summary
`int` `compareEndpoints(java.net.InetAddress target, java.net.InetAddress a1, java.net.InetAddress a2)` compares two endpoints in relation to the target endpoint, returning as Comparator.compare would
`java.util.List<java.lang.Double>` `dumpTimings(java.lang.String hostname)`
`double` `getBadnessThreshold()`
`java.lang.String` `getDatacenter(java.net.InetAddress endpoint)` returns a String representing the datacenter this endpoint belongs to
`java.lang.String` `getRack(java.net.InetAddress endpoint)` returns a String repesenting the rack this endpoint belongs to
`int` `getResetInterval()`
`java.util.Map<java.net.InetAddress,java.lang.Double>` `getScores()`
`java.util.List<java.net.InetAddress>` `getSortedListByProximity(java.net.InetAddress address, java.util.Collection<java.net.InetAddress> addresses)` Sorts the `Collection` of node addresses by proximity to the given address
`java.lang.String` `getSubsnitchClassName()`
`int` `getUpdateInterval()`
`void` `gossiperStarting()` called after Gossiper instance exists immediately before it starts gossiping
`void` `receiveTiming(java.net.InetAddress host, java.lang.Double latency)`
`void` `sortByProximity(java.net.InetAddress address, java.util.List<java.net.InetAddress> addresses)` Sorts the `List` of node addresses, in-place, by proximity to the given address
`void` `unregisterMBean()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### subsnitch

    public final IEndpointSnitch subsnitch

Constructor Detail

### DynamicEndpointSnitch

    public DynamicEndpointSnitch(IEndpointSnitch snitch)

Method Detail

### unregisterMBean

    public void unregisterMBean()

### gossiperStarting

    public void gossiperStarting()

  Description copied from interface: `IEndpointSnitch`
  called after Gossiper instance exists immediately before it starts gossiping

  Specified by:
    `gossiperStarting` in interface `IEndpointSnitch`
  Overrides:
    `gossiperStarting` in class `AbstractEndpointSnitch`

### getRack

    public java.lang.String getRack(java.net.InetAddress endpoint)

  Description copied from interface: `IEndpointSnitch`
  returns a String repesenting the rack this endpoint belongs to

  Specified by:
    `getRack` in interface `IEndpointSnitch`

### getDatacenter

    public java.lang.String getDatacenter(java.net.InetAddress endpoint)

  Description copied from interface: `IEndpointSnitch`
  returns a String representing the datacenter this endpoint belongs to

  Specified by:
    `getDatacenter` in interface `IEndpointSnitch`

### getSortedListByProximity

    public java.util.List<java.net.InetAddress> getSortedListByProximity(java.net.InetAddress address,
                                                                         java.util.Collection<java.net.InetAddress> addresses)

  Description copied from class: `AbstractEndpointSnitch`
  Sorts the `Collection` of node addresses by proximity to the given address

  Specified by:
    `getSortedListByProximity` in interface `IEndpointSnitch`
  Overrides:
    `getSortedListByProximity` in class `AbstractEndpointSnitch`
  Parameters:
    `address` - the address to sort by proximity to
    `addresses` - the nodes to sort
  Returns:
    a new sorted `List`

### sortByProximity

    public void sortByProximity(java.net.InetAddress address,
                                java.util.List<java.net.InetAddress> addresses)

  Description copied from class: `AbstractEndpointSnitch`
  Sorts the `List` of node addresses, in-place, by proximity to the given address

  Specified by:
    `sortByProximity` in interface `IEndpointSnitch`
  Overrides:
    `sortByProximity` in class `AbstractEndpointSnitch`
  Parameters:
    `address` - the address to sort the proximity by
    `addresses` - the nodes to sort

### compareEndpoints

    public int compareEndpoints(java.net.InetAddress target,
                                java.net.InetAddress a1,
                                java.net.InetAddress a2)

  Description copied from interface: `IEndpointSnitch`
  compares two endpoints in relation to the target endpoint, returning as Comparator.compare would

  Specified by:
    `compareEndpoints` in interface `IEndpointSnitch`
  Specified by:
    `compareEndpoints` in class `AbstractEndpointSnitch`

### receiveTiming

    public void receiveTiming(java.net.InetAddress host,
                              java.lang.Double latency)

  Specified by:
    `receiveTiming` in interface `ILatencySubscriber`

### getScores

    public java.util.Map<java.net.InetAddress,java.lang.Double> getScores()

  Specified by:
    `getScores` in interface `DynamicEndpointSnitchMBean`

### getUpdateInterval

    public int getUpdateInterval()

  Specified by:
    `getUpdateInterval` in interface `DynamicEndpointSnitchMBean`

### getResetInterval

    public int getResetInterval()

  Specified by:
    `getResetInterval` in interface `DynamicEndpointSnitchMBean`

### getBadnessThreshold

    public double getBadnessThreshold()

  Specified by:
    `getBadnessThreshold` in interface `DynamicEndpointSnitchMBean`

### getSubsnitchClassName

    public java.lang.String getSubsnitchClassName()

  Specified by:
    `getSubsnitchClassName` in interface `DynamicEndpointSnitchMBean`

### dumpTimings

    public java.util.List<java.lang.Double> dumpTimings(java.lang.String hostname)
                                                 throws java.net.UnknownHostException

  Specified by:
    `dumpTimings` in interface `DynamicEndpointSnitchMBean`
  Throws:
    `java.net.UnknownHostException`

Copyright © 2012 The Apache Software Foundation