UNPKG

cassandra-server

Version:

A thin Javascript wrapper around Apache Cassandra to provide out of the box server support

963 lines (962 loc) 43.7 kB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (version 1.7.0_67) on Sun Sep 07 15:29:29 CEST 2014 --> <title>Gossiper (apache-cassandra API)</title> <meta name="date" content="2014-09-07"> <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> </head> <body> <script type="text/javascript"><!-- if (location.href.indexOf('is-external=true') == -1) { parent.document.title="Gossiper (apache-cassandra API)"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar_top"> <!-- --> </a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/Gossiper.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../../index-all.html">Index</a></li> <li><a href="../../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li><a href="../../../../org/apache/cassandra/gms/GossipDigestSynVerbHandler.html" title="class in org.apache.cassandra.gms"><span class="strong">Prev Class</span></a></li> <li><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html" title="interface in org.apache.cassandra.gms"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../index.html?org/apache/cassandra/gms/Gossiper.html" target="_top">Frames</a></li> <li><a href="Gossiper.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../../../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_top"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary:&nbsp;</li> <li>Nested&nbsp;|&nbsp;</li> <li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li> <li>Constr&nbsp;|&nbsp;</li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail:&nbsp;</li> <li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li> <li>Constr&nbsp;|&nbsp;</li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> <!-- ======== START OF CLASS DATA ======== --> <div class="header"> <div class="subTitle">org.apache.cassandra.gms</div> <h2 title="Class Gossiper" class="title">Class Gossiper</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>org.apache.cassandra.gms.Gossiper</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <dl> <dt>All Implemented Interfaces:</dt> <dd><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html" title="interface in org.apache.cassandra.gms">GossiperMBean</a>, <a href="../../../../org/apache/cassandra/gms/IFailureDetectionEventListener.html" title="interface in org.apache.cassandra.gms">IFailureDetectionEventListener</a></dd> </dl> <hr> <br> <pre>public class <span class="strong">Gossiper</span> extends java.lang.Object implements <a href="../../../../org/apache/cassandra/gms/IFailureDetectionEventListener.html" title="interface in org.apache.cassandra.gms">IFailureDetectionEventListener</a>, <a href="../../../../org/apache/cassandra/gms/GossiperMBean.html" title="interface in org.apache.cassandra.gms">GossiperMBean</a></pre> <div class="block">This module is responsible for Gossiping information for the local endpoint. This abstraction maintains the list of live and dead endpoints. Periodically i.e. every 1 second this module chooses a random node and initiates a round of Gossip with it. A round of Gossip involves 3 rounds of messaging. For instance if node A wants to initiate a round of Gossip with node B it starts off by sending node B a GossipDigestSynMessage. Node B on receipt of this message sends node A a GossipDigestAckMessage. On receipt of this message node A sends node B a GossipDigestAck2Message which completes a round of Gossip. This module as and when it hears one of the three above mentioned messages updates the Failure Detector with the liveness information. Upon hearing a GossipShutdownMessage, this module will instantly mark the remote node as down in the Failure Detector.</div> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- =========== FIELD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="field_summary"> <!-- --> </a> <h3>Field Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Field and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>static long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#aVeryLongTime">aVeryLongTime</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static <a href="../../../../org/apache/cassandra/gms/Gossiper.html" title="class in org.apache.cassandra.gms">Gossiper</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#instance">instance</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>static int</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#intervalInMillis">intervalInMillis</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static int</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#QUARANTINE_DELAY">QUARANTINE_DELAY</a></strong></code>&nbsp;</td> </tr> </table> </li> </ul> <!-- ========== METHOD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="method_summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#addExpireTimeForEndpoint(java.net.InetAddress,%20long)">addExpireTimeForEndpoint</a></strong>(java.net.InetAddress&nbsp;endpoint, long&nbsp;expireTime)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#addLocalApplicationState(org.apache.cassandra.gms.ApplicationState,%20org.apache.cassandra.gms.VersionedValue)">addLocalApplicationState</a></strong>(<a href="../../../../org/apache/cassandra/gms/ApplicationState.html" title="enum in org.apache.cassandra.gms">ApplicationState</a>&nbsp;state, <a href="../../../../org/apache/cassandra/gms/VersionedValue.html" title="class in org.apache.cassandra.gms">VersionedValue</a>&nbsp;value)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#addSavedEndpoint(java.net.InetAddress)">addSavedEndpoint</a></strong>(java.net.InetAddress&nbsp;ep)</code> <div class="block">Add an endpoint we knew about previously, but whose state is unknown</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#advertiseRemoving(java.net.InetAddress,%20java.util.UUID,%20java.util.UUID)">advertiseRemoving</a></strong>(java.net.InetAddress&nbsp;endpoint, java.util.UUID&nbsp;hostId, java.util.UUID&nbsp;localHostId)</code> <div class="block">This method will begin removing an existing endpoint from the cluster by spoofing its state This should never be called unless this coordinator has had 'removenode' invoked</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#advertiseTokenRemoved(java.net.InetAddress,%20java.util.UUID)">advertiseTokenRemoved</a></strong>(java.net.InetAddress&nbsp;endpoint, java.util.UUID&nbsp;hostId)</code> <div class="block">Handles switching the endpoint's state from REMOVING_TOKEN to REMOVED_TOKEN This should only be called after advertiseRemoving</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#compareEndpointStartup(java.net.InetAddress,%20java.net.InetAddress)">compareEndpointStartup</a></strong>(java.net.InetAddress&nbsp;addr1, java.net.InetAddress&nbsp;addr2)</code> <div class="block">determine which endpoint started up earlier</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>static long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#computeExpireTime()">computeExpireTime</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#convict(java.net.InetAddress,%20double)">convict</a></strong>(java.net.InetAddress&nbsp;endpoint, double&nbsp;phi)</code> <div class="block">This method is part of IFailureDetectionEventListener interface.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#doShadowRound()">doShadowRound</a></strong>()</code> <div class="block">Do a single 'shadow' round of gossip, where we do not modify any state Only used when replacing a node, to get and assume its states</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#finishShadowRound()">finishShadowRound</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getCurrentGenerationNumber(java.net.InetAddress)">getCurrentGenerationNumber</a></strong>(java.net.InetAddress&nbsp;endpoint)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getCurrentGenerationNumber(java.lang.String)">getCurrentGenerationNumber</a></strong>(java.lang.String&nbsp;address)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getEndpointDowntime(java.net.InetAddress)">getEndpointDowntime</a></strong>(java.net.InetAddress&nbsp;ep)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getEndpointDowntime(java.lang.String)">getEndpointDowntime</a></strong>(java.lang.String&nbsp;address)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code><a href="../../../../org/apache/cassandra/gms/EndpointState.html" title="class in org.apache.cassandra.gms">EndpointState</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getEndpointStateForEndpoint(java.net.InetAddress)">getEndpointStateForEndpoint</a></strong>(java.net.InetAddress&nbsp;ep)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.Set&lt;java.util.Map.Entry&lt;java.net.InetAddress,<a href="../../../../org/apache/cassandra/gms/EndpointState.html" title="class in org.apache.cassandra.gms">EndpointState</a>&gt;&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getEndpointStates()">getEndpointStates</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getExpireTimeForEndpoint(java.net.InetAddress)">getExpireTimeForEndpoint</a></strong>(java.net.InetAddress&nbsp;endpoint)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.UUID</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getHostId(java.net.InetAddress)">getHostId</a></strong>(java.net.InetAddress&nbsp;endpoint)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.util.Set&lt;java.net.InetAddress&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getLiveMembers()">getLiveMembers</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.Set&lt;java.net.InetAddress&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getLiveTokenOwners()">getLiveTokenOwners</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.util.Set&lt;java.net.InetAddress&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getUnreachableMembers()">getUnreachableMembers</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.Set&lt;java.net.InetAddress&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#getUnreachableTokenOwners()">getUnreachableTokenOwners</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#initializeNodeUnsafe(java.net.InetAddress,%20java.util.UUID,%20int)">initializeNodeUnsafe</a></strong>(java.net.InetAddress&nbsp;addr, java.util.UUID&nbsp;uuid, int&nbsp;generationNbr)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#injectApplicationState(java.net.InetAddress,%20org.apache.cassandra.gms.ApplicationState,%20org.apache.cassandra.gms.VersionedValue)">injectApplicationState</a></strong>(java.net.InetAddress&nbsp;endpoint, <a href="../../../../org/apache/cassandra/gms/ApplicationState.html" title="enum in org.apache.cassandra.gms">ApplicationState</a>&nbsp;state, <a href="../../../../org/apache/cassandra/gms/VersionedValue.html" title="class in org.apache.cassandra.gms">VersionedValue</a>&nbsp;value)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#isDeadState(org.apache.cassandra.gms.EndpointState)">isDeadState</a></strong>(<a href="../../../../org/apache/cassandra/gms/EndpointState.html" title="class in org.apache.cassandra.gms">EndpointState</a>&nbsp;epState)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#isEnabled()">isEnabled</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#isFatClient(java.net.InetAddress)">isFatClient</a></strong>(java.net.InetAddress&nbsp;endpoint)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#isInShadowRound()">isInShadowRound</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#isKnownEndpoint(java.net.InetAddress)">isKnownEndpoint</a></strong>(java.net.InetAddress&nbsp;endpoint)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#maybeInitializeLocalState(int)">maybeInitializeLocalState</a></strong>(int&nbsp;generationNbr)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#register(org.apache.cassandra.gms.IEndpointStateChangeSubscriber)">register</a></strong>(<a href="../../../../org/apache/cassandra/gms/IEndpointStateChangeSubscriber.html" title="interface in org.apache.cassandra.gms">IEndpointStateChangeSubscriber</a>&nbsp;subscriber)</code> <div class="block">Register for interesting state changes.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#removeEndpoint(java.net.InetAddress)">removeEndpoint</a></strong>(java.net.InetAddress&nbsp;endpoint)</code> <div class="block">Removes the endpoint from Gossip but retains endpoint state</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#replacedEndpoint(java.net.InetAddress)">replacedEndpoint</a></strong>(java.net.InetAddress&nbsp;endpoint)</code> <div class="block">Remove the Endpoint and evict immediately, to avoid gossiping about this node.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#resetEndpointStateMap()">resetEndpointStateMap</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#seenAnySeed()">seenAnySeed</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#setLastProcessedMessageAt(long)">setLastProcessedMessageAt</a></strong>(long&nbsp;timeInMillis)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#start(int)">start</a></strong>(int&nbsp;generationNumber)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#start(int,%20java.util.Map)">start</a></strong>(int&nbsp;generationNbr, java.util.Map&lt;<a href="../../../../org/apache/cassandra/gms/ApplicationState.html" title="enum in org.apache.cassandra.gms">ApplicationState</a>,<a href="../../../../org/apache/cassandra/gms/VersionedValue.html" title="class in org.apache.cassandra.gms">VersionedValue</a>&gt;&nbsp;preloadLocalStates)</code> <div class="block">Start the gossiper with the generation number, preloading the map of application states before starting</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#stop()">stop</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#unregister(org.apache.cassandra.gms.IEndpointStateChangeSubscriber)">unregister</a></strong>(<a href="../../../../org/apache/cassandra/gms/IEndpointStateChangeSubscriber.html" title="interface in org.apache.cassandra.gms">IEndpointStateChangeSubscriber</a>&nbsp;subscriber)</code> <div class="block">Unregister interest for state changes.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#unsafeAssassinateEndpoint(java.lang.String)">unsafeAssassinateEndpoint</a></strong>(java.lang.String&nbsp;address)</code> <div class="block">Do not call this method unless you know what you are doing.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#usesHostId(java.net.InetAddress)">usesHostId</a></strong>(java.net.InetAddress&nbsp;endpoint)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/gms/Gossiper.html#usesVnodes(java.net.InetAddress)">usesVnodes</a></strong>(java.net.InetAddress&nbsp;endpoint)</code>&nbsp;</td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class&nbsp;java.lang.Object</h3> <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> </ul> </li> </ul> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ============ FIELD DETAIL =========== --> <ul class="blockList"> <li class="blockList"><a name="field_detail"> <!-- --> </a> <h3>Field Detail</h3> <a name="intervalInMillis"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>intervalInMillis</h4> <pre>public static final&nbsp;int intervalInMillis</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.cassandra.gms.Gossiper.intervalInMillis">Constant Field Values</a></dd></dl> </li> </ul> <a name="QUARANTINE_DELAY"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>QUARANTINE_DELAY</h4> <pre>public static final&nbsp;int QUARANTINE_DELAY</pre> </li> </ul> <a name="instance"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>instance</h4> <pre>public static final&nbsp;<a href="../../../../org/apache/cassandra/gms/Gossiper.html" title="class in org.apache.cassandra.gms">Gossiper</a> instance</pre> </li> </ul> <a name="aVeryLongTime"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>aVeryLongTime</h4> <pre>public static final&nbsp;long aVeryLongTime</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.cassandra.gms.Gossiper.aVeryLongTime">Constant Field Values</a></dd></dl> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method_detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="setLastProcessedMessageAt(long)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setLastProcessedMessageAt</h4> <pre>public&nbsp;void&nbsp;setLastProcessedMessageAt(long&nbsp;timeInMillis)</pre> </li> </ul> <a name="seenAnySeed()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>seenAnySeed</h4> <pre>public&nbsp;boolean&nbsp;seenAnySeed()</pre> </li> </ul> <a name="register(org.apache.cassandra.gms.IEndpointStateChangeSubscriber)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>register</h4> <pre>public&nbsp;void&nbsp;register(<a href="../../../../org/apache/cassandra/gms/IEndpointStateChangeSubscriber.html" title="interface in org.apache.cassandra.gms">IEndpointStateChangeSubscriber</a>&nbsp;subscriber)</pre> <div class="block">Register for interesting state changes.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>subscriber</code> - module which implements the IEndpointStateChangeSubscriber</dd></dl> </li> </ul> <a name="unregister(org.apache.cassandra.gms.IEndpointStateChangeSubscriber)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>unregister</h4> <pre>public&nbsp;void&nbsp;unregister(<a href="../../../../org/apache/cassandra/gms/IEndpointStateChangeSubscriber.html" title="interface in org.apache.cassandra.gms">IEndpointStateChangeSubscriber</a>&nbsp;subscriber)</pre> <div class="block">Unregister interest for state changes.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>subscriber</code> - module which implements the IEndpointStateChangeSubscriber</dd></dl> </li> </ul> <a name="getLiveMembers()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getLiveMembers</h4> <pre>public&nbsp;java.util.Set&lt;java.net.InetAddress&gt;&nbsp;getLiveMembers()</pre> </li> </ul> <a name="getLiveTokenOwners()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getLiveTokenOwners</h4> <pre>public&nbsp;java.util.Set&lt;java.net.InetAddress&gt;&nbsp;getLiveTokenOwners()</pre> </li> </ul> <a name="getUnreachableMembers()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getUnreachableMembers</h4> <pre>public&nbsp;java.util.Set&lt;java.net.InetAddress&gt;&nbsp;getUnreachableMembers()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>a list of unreachable gossip participants, including fat clients</dd></dl> </li> </ul> <a name="getUnreachableTokenOwners()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getUnreachableTokenOwners</h4> <pre>public&nbsp;java.util.Set&lt;java.net.InetAddress&gt;&nbsp;getUnreachableTokenOwners()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>a list of unreachable token owners</dd></dl> </li> </ul> <a name="getEndpointDowntime(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getEndpointDowntime</h4> <pre>public&nbsp;long&nbsp;getEndpointDowntime(java.net.InetAddress&nbsp;ep)</pre> </li> </ul> <a name="convict(java.net.InetAddress, double)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>convict</h4> <pre>public&nbsp;void&nbsp;convict(java.net.InetAddress&nbsp;endpoint, double&nbsp;phi)</pre> <div class="block">This method is part of IFailureDetectionEventListener interface. This is invoked by the Failure Detector when it convicts an end point.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/gms/IFailureDetectionEventListener.html#convict(java.net.InetAddress,%20double)">convict</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/gms/IFailureDetectionEventListener.html" title="interface in org.apache.cassandra.gms">IFailureDetectionEventListener</a></code></dd> <dt><span class="strong">Parameters:</span></dt><dd><code>endpoint</code> - end point that is convicted.</dd><dd><code>phi</code> - the value of phi with with ep was convicted</dd></dl> </li> </ul> <a name="removeEndpoint(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>removeEndpoint</h4> <pre>public&nbsp;void&nbsp;removeEndpoint(java.net.InetAddress&nbsp;endpoint)</pre> <div class="block">Removes the endpoint from Gossip but retains endpoint state</div> </li> </ul> <a name="replacedEndpoint(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>replacedEndpoint</h4> <pre>public&nbsp;void&nbsp;replacedEndpoint(java.net.InetAddress&nbsp;endpoint)</pre> <div class="block">Remove the Endpoint and evict immediately, to avoid gossiping about this node. This should only be called when a token is taken over by a new IP address.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>endpoint</code> - The endpoint that has been replaced</dd></dl> </li> </ul> <a name="advertiseRemoving(java.net.InetAddress, java.util.UUID, java.util.UUID)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>advertiseRemoving</h4> <pre>public&nbsp;void&nbsp;advertiseRemoving(java.net.InetAddress&nbsp;endpoint, java.util.UUID&nbsp;hostId, java.util.UUID&nbsp;localHostId)</pre> <div class="block">This method will begin removing an existing endpoint from the cluster by spoofing its state This should never be called unless this coordinator has had 'removenode' invoked</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>endpoint</code> - - the endpoint being removed</dd><dd><code>hostId</code> - - the ID of the host being removed</dd><dd><code>localHostId</code> - - my own host ID for replication coordination</dd></dl> </li> </ul> <a name="advertiseTokenRemoved(java.net.InetAddress, java.util.UUID)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>advertiseTokenRemoved</h4> <pre>public&nbsp;void&nbsp;advertiseTokenRemoved(java.net.InetAddress&nbsp;endpoint, java.util.UUID&nbsp;hostId)</pre> <div class="block">Handles switching the endpoint's state from REMOVING_TOKEN to REMOVED_TOKEN This should only be called after advertiseRemoving</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>endpoint</code> - </dd><dd><code>hostId</code> - </dd></dl> </li> </ul> <a name="unsafeAssassinateEndpoint(java.lang.String)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>unsafeAssassinateEndpoint</h4> <pre>public&nbsp;void&nbsp;unsafeAssassinateEndpoint(java.lang.String&nbsp;address) throws java.net.UnknownHostException</pre> <div class="block">Do not call this method unless you know what you are doing. It will try extremely hard to obliterate any endpoint from the ring, even if it does not know about it. This should only ever be called by human via JMX.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html#unsafeAssassinateEndpoint(java.lang.String)">unsafeAssassinateEndpoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html" title="interface in org.apache.cassandra.gms">GossiperMBean</a></code></dd> <dt><span class="strong">Parameters:</span></dt><dd><code>address</code> - </dd> <dt><span class="strong">Throws:</span></dt> <dd><code>java.net.UnknownHostException</code></dd></dl> </li> </ul> <a name="isKnownEndpoint(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isKnownEndpoint</h4> <pre>public&nbsp;boolean&nbsp;isKnownEndpoint(java.net.InetAddress&nbsp;endpoint)</pre> </li> </ul> <a name="getCurrentGenerationNumber(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getCurrentGenerationNumber</h4> <pre>public&nbsp;int&nbsp;getCurrentGenerationNumber(java.net.InetAddress&nbsp;endpoint)</pre> </li> </ul> <a name="isFatClient(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isFatClient</h4> <pre>public&nbsp;boolean&nbsp;isFatClient(java.net.InetAddress&nbsp;endpoint)</pre> </li> </ul> <a name="getExpireTimeForEndpoint(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getExpireTimeForEndpoint</h4> <pre>protected&nbsp;long&nbsp;getExpireTimeForEndpoint(java.net.InetAddress&nbsp;endpoint)</pre> </li> </ul> <a name="getEndpointStateForEndpoint(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getEndpointStateForEndpoint</h4> <pre>public&nbsp;<a href="../../../../org/apache/cassandra/gms/EndpointState.html" title="class in org.apache.cassandra.gms">EndpointState</a>&nbsp;getEndpointStateForEndpoint(java.net.InetAddress&nbsp;ep)</pre> </li> </ul> <a name="resetEndpointStateMap()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>resetEndpointStateMap</h4> <pre>public&nbsp;void&nbsp;resetEndpointStateMap()</pre> </li> </ul> <a name="getEndpointStates()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getEndpointStates</h4> <pre>public&nbsp;java.util.Set&lt;java.util.Map.Entry&lt;java.net.InetAddress,<a href="../../../../org/apache/cassandra/gms/EndpointState.html" title="class in org.apache.cassandra.gms">EndpointState</a>&gt;&gt;&nbsp;getEndpointStates()</pre> </li> </ul> <a name="usesHostId(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>usesHostId</h4> <pre>public&nbsp;boolean&nbsp;usesHostId(java.net.InetAddress&nbsp;endpoint)</pre> </li> </ul> <a name="usesVnodes(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>usesVnodes</h4> <pre>public&nbsp;boolean&nbsp;usesVnodes(java.net.InetAddress&nbsp;endpoint)</pre> </li> </ul> <a name="getHostId(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getHostId</h4> <pre>public&nbsp;java.util.UUID&nbsp;getHostId(java.net.InetAddress&nbsp;endpoint)</pre> </li> </ul> <a name="compareEndpointStartup(java.net.InetAddress, java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>compareEndpointStartup</h4> <pre>public&nbsp;int&nbsp;compareEndpointStartup(java.net.InetAddress&nbsp;addr1, java.net.InetAddress&nbsp;addr2)</pre> <div class="block">determine which endpoint started up earlier</div> </li> </ul> <a name="isDeadState(org.apache.cassandra.gms.EndpointState)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isDeadState</h4> <pre>public&nbsp;boolean&nbsp;isDeadState(<a href="../../../../org/apache/cassandra/gms/EndpointState.html" title="class in org.apache.cassandra.gms">EndpointState</a>&nbsp;epState)</pre> </li> </ul> <a name="start(int)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>start</h4> <pre>public&nbsp;void&nbsp;start(int&nbsp;generationNumber)</pre> </li> </ul> <a name="start(int, java.util.Map)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>start</h4> <pre>public&nbsp;void&nbsp;start(int&nbsp;generationNbr, java.util.Map&lt;<a href="../../../../org/apache/cassandra/gms/ApplicationState.html" title="enum in org.apache.cassandra.gms">ApplicationState</a>,<a href="../../../../org/apache/cassandra/gms/VersionedValue.html" title="class in org.apache.cassandra.gms">VersionedValue</a>&gt;&nbsp;preloadLocalStates)</pre> <div class="block">Start the gossiper with the generation number, preloading the map of application states before starting</div> </li> </ul> <a name="doShadowRound()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>doShadowRound</h4> <pre>public&nbsp;void&nbsp;doShadowRound()</pre> <div class="block">Do a single 'shadow' round of gossip, where we do not modify any state Only used when replacing a node, to get and assume its states</div> </li> </ul> <a name="maybeInitializeLocalState(int)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>maybeInitializeLocalState</h4> <pre>public&nbsp;void&nbsp;maybeInitializeLocalState(int&nbsp;generationNbr)</pre> </li> </ul> <a name="addSavedEndpoint(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>addSavedEndpoint</h4> <pre>public&nbsp;void&nbsp;addSavedEndpoint(java.net.InetAddress&nbsp;ep)</pre> <div class="block">Add an endpoint we knew about previously, but whose state is unknown</div> </li> </ul> <a name="addLocalApplicationState(org.apache.cassandra.gms.ApplicationState, org.apache.cassandra.gms.VersionedValue)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>addLocalApplicationState</h4> <pre>public&nbsp;void&nbsp;addLocalApplicationState(<a href="../../../../org/apache/cassandra/gms/ApplicationState.html" title="enum in org.apache.cassandra.gms">ApplicationState</a>&nbsp;state, <a href="../../../../org/apache/cassandra/gms/VersionedValue.html" title="class in org.apache.cassandra.gms">VersionedValue</a>&nbsp;value)</pre> </li> </ul> <a name="stop()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>stop</h4> <pre>public&nbsp;void&nbsp;stop()</pre> </li> </ul> <a name="isEnabled()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isEnabled</h4> <pre>public&nbsp;boolean&nbsp;isEnabled()</pre> </li> </ul> <a name="finishShadowRound()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>finishShadowRound</h4> <pre>protected&nbsp;void&nbsp;finishShadowRound()</pre> </li> </ul> <a name="isInShadowRound()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isInShadowRound</h4> <pre>protected&nbsp;boolean&nbsp;isInShadowRound()</pre> </li> </ul> <a name="initializeNodeUnsafe(java.net.InetAddress, java.util.UUID, int)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>initializeNodeUnsafe</h4> <pre>public&nbsp;void&nbsp;initializeNodeUnsafe(java.net.InetAddress&nbsp;addr, java.util.UUID&nbsp;uuid, int&nbsp;generationNbr)</pre> </li> </ul> <a name="injectApplicationState(java.net.InetAddress, org.apache.cassandra.gms.ApplicationState, org.apache.cassandra.gms.VersionedValue)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>injectApplicationState</h4> <pre>public&nbsp;void&nbsp;injectApplicationState(java.net.InetAddress&nbsp;endpoint, <a href="../../../../org/apache/cassandra/gms/ApplicationState.html" title="enum in org.apache.cassandra.gms">ApplicationState</a>&nbsp;state, <a href="../../../../org/apache/cassandra/gms/VersionedValue.html" title="class in org.apache.cassandra.gms">VersionedValue</a>&nbsp;value)</pre> </li> </ul> <a name="getEndpointDowntime(java.lang.String)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getEndpointDowntime</h4> <pre>public&nbsp;long&nbsp;getEndpointDowntime(java.lang.String&nbsp;address) throws java.net.UnknownHostException</pre> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html#getEndpointDowntime(java.lang.String)">getEndpointDowntime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html" title="interface in org.apache.cassandra.gms">GossiperMBean</a></code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code>java.net.UnknownHostException</code></dd></dl> </li> </ul> <a name="getCurrentGenerationNumber(java.lang.String)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getCurrentGenerationNumber</h4> <pre>public&nbsp;int&nbsp;getCurrentGenerationNumber(java.lang.String&nbsp;address) throws java.net.UnknownHostException</pre> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html#getCurrentGenerationNumber(java.lang.String)">getCurrentGenerationNumber</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html" title="interface in org.apache.cassandra.gms">GossiperMBean</a></code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code>java.net.UnknownHostException</code></dd></dl> </li> </ul> <a name="addExpireTimeForEndpoint(java.net.InetAddress, long)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>addExpireTimeForEndpoint</h4> <pre>public&nbsp;void&nbsp;addExpireTimeForEndpoint(java.net.InetAddress&nbsp;endpoint, long&nbsp;expireTime)</pre> </li> </ul> <a name="computeExpireTime()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>computeExpireTime</h4> <pre>public static&nbsp;long&nbsp;computeExpireTime()</pre> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a name="navbar_bottom"> <!-- --> </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/Gossiper.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../../index-all.html">Index</a></li> <li><a href="../../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li><a href="../../../../org/apache/cassandra/gms/GossipDigestSynVerbHandler.html" title="class in org.apache.cassandra.gms"><span class="strong">Prev Class</span></a></li> <li><a href="../../../../org/apache/cassandra/gms/GossiperMBean.html" title="interface in org.apache.cassandra.gms"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../index.html?org/apache/cassandra/gms/Gossiper.html" target="_top">Frames</a></li> <li><a href="Gossiper.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../../../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_bottom"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary:&nbsp;</li> <li>Nested&nbsp;|&nbsp;</li> <li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li> <li>Constr&nbsp;|&nbsp;</li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail:&nbsp;</li> <li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li> <li>Constr&nbsp;|&nbsp;</li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> <p class="legalCopy"><small>Copyright &copy; 2014 The Apache Software Foundation</small></p> </body> </html>