org.apache.cassandra.db
Class HintedHandOffManager

java.lang.Object
  extended by org.apache.cassandra.db.HintedHandOffManager
All Implemented Interfaces:
HintedHandOffManagerMBean

public class HintedHandOffManager
extends java.lang.Object
implements HintedHandOffManagerMBean

The hint schema looks like this: CREATE TABLE hints ( target_id uuid, hint_id timeuuid, message_version int, mutation blob, PRIMARY KEY (target_id, hint_id, message_version) ) WITH COMPACT STORAGE; Thus, for each node in the cluster we treat its uuid as the partition key; each hint is a logical row (physical composite column) containing the mutation to replay and associated metadata. When FailureDetector signals that a node that was down is back up, we page through the hinted mutations and send them over one at a time, waiting for hinted_handoff_throttle_delay in between each. deliverHints is also exposed to JMX so it can be run manually if FD ever misses its cue somehow.


Field Summary
static HintedHandOffManager instance
           
static java.lang.String MBEAN_NAME
           
 
Constructor Summary
HintedHandOffManager()
           
 
Method Summary
protected  java.util.concurrent.Future<?> compact()
           
 java.util.Map<java.lang.String,java.lang.Integer> countPendingHints()
          List all the endpoints that this node has hints for, and count the number of hints for each such endpoint.
 void deleteHintsForEndpoint(java.net.InetAddress endpoint)
           
 void deleteHintsForEndpoint(java.lang.String ipOrHostname)
          Nuke all hints from this node to `ep`.
 java.util.List<java.lang.String> listEndpointsPendingHints()
          List all the endpoints that this node has hints for.
 void pauseHintsDelivery(boolean b)
          pause hints delivery process
 void scheduleHintDelivery(java.net.InetAddress to)
           
 void scheduleHintDelivery(java.lang.String to)
          force hint delivery to an endpoint
 void start()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MBEAN_NAME

public static final java.lang.String MBEAN_NAME
See Also:
Constant Field Values

instance

public static final HintedHandOffManager instance
Constructor Detail

HintedHandOffManager

public HintedHandOffManager()
Method Detail

start

public void start()

deleteHintsForEndpoint

public void deleteHintsForEndpoint(java.lang.String ipOrHostname)
Description copied from interface: HintedHandOffManagerMBean
Nuke all hints from this node to `ep`.

Specified by:
deleteHintsForEndpoint in interface HintedHandOffManagerMBean
Parameters:
ipOrHostname - String rep. of endpoint address to delete hints for, either ip address ("127.0.0.1") or hostname

deleteHintsForEndpoint

public void deleteHintsForEndpoint(java.net.InetAddress endpoint)

compact

protected java.util.concurrent.Future<?> compact()
                                          throws java.util.concurrent.ExecutionException,
                                                 java.lang.InterruptedException
Throws:
java.util.concurrent.ExecutionException
java.lang.InterruptedException

scheduleHintDelivery

public void scheduleHintDelivery(java.net.InetAddress to)

scheduleHintDelivery

public void scheduleHintDelivery(java.lang.String to)
                          throws java.net.UnknownHostException
Description copied from interface: HintedHandOffManagerMBean
force hint delivery to an endpoint

Specified by:
scheduleHintDelivery in interface HintedHandOffManagerMBean
Throws:
java.net.UnknownHostException

pauseHintsDelivery

public void pauseHintsDelivery(boolean b)
Description copied from interface: HintedHandOffManagerMBean
pause hints delivery process

Specified by:
pauseHintsDelivery in interface HintedHandOffManagerMBean

listEndpointsPendingHints

public java.util.List<java.lang.String> listEndpointsPendingHints()
Description copied from interface: HintedHandOffManagerMBean
List all the endpoints that this node has hints for.

Specified by:
listEndpointsPendingHints in interface HintedHandOffManagerMBean
Returns:
set of endpoints; as Strings

countPendingHints

public java.util.Map<java.lang.String,java.lang.Integer> countPendingHints()
Description copied from interface: HintedHandOffManagerMBean
List all the endpoints that this node has hints for, and count the number of hints for each such endpoint.

Specified by:
countPendingHints in interface HintedHandOffManagerMBean
Returns:
map of endpoint -> hint count


Copyright © 2013 The Apache Software Foundation