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

For each endpoint for which we have hints, there is a row in the system hints CF. The key for this row is ByteBuffer.wrap(string), i.e. "127.0.0.1". (We have to use String keys for compatibility with OPP.) SuperColumns in these rows are the mutations to replay, with uuid names: : { // key : { // supercolumn mutation: // subcolumn version: table:

key: } } 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 java.lang.String HINTS_CF
           
static HintedHandOffManager instance
           
 
Constructor Summary
HintedHandOffManager()
           
 
Method Summary
 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`.
 void deliverHints(java.net.InetAddress to)
           
 void deliverHints(java.lang.String to)
           
 java.util.List<java.lang.String> listEndpointsPendingHints()
          List all the endpoints that this node has hints for.
 void registerMBean()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instance

public static final HintedHandOffManager instance

HINTS_CF

public static final java.lang.String HINTS_CF
See Also:
Constant Field Values
Constructor Detail

HintedHandOffManager

public HintedHandOffManager()
Method Detail

registerMBean

public void registerMBean()

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)

deliverHints

public void deliverHints(java.net.InetAddress to)

deliverHints

public void deliverHints(java.lang.String to)
                  throws java.net.UnknownHostException
Throws:
java.net.UnknownHostException

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