org.apache.cassandra.locator
Class DynamicEndpointSnitch

java.lang.Object
  extended by org.apache.cassandra.locator.AbstractEndpointSnitch
      extended by 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)
          returns a new List sorted by proximity to the given endpoint
 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)
          This method will sort the List 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 interface: IEndpointSnitch
returns a new List sorted by proximity to the given endpoint

Specified by:
getSortedListByProximity in interface IEndpointSnitch
Specified by:
getSortedListByProximity in class AbstractEndpointSnitch

sortByProximity

public void sortByProximity(java.net.InetAddress address,
                            java.util.List<java.net.InetAddress> addresses)
Description copied from interface: IEndpointSnitch
This method will sort the List by proximity to the given address.

Specified by:
sortByProximity in interface IEndpointSnitch
Specified by:
sortByProximity in class AbstractEndpointSnitch

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
Overrides:
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 © 2011 The Apache Software Foundation