UNPKG

cassandra-server

Version:

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

691 lines (686 loc) 95.4 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:32 CEST 2014 --> <title>StorageProxy (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="StorageProxy (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/StorageProxy.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/service/SnapshotVerbHandler.html" title="class in org.apache.cassandra.service"><span class="strong">Prev Class</span></a></li> <li><a href="../../../../org/apache/cassandra/service/StorageProxy.WritePerformer.html" title="interface in org.apache.cassandra.service"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../index.html?org/apache/cassandra/service/StorageProxy.html" target="_top">Frames</a></li> <li><a href="StorageProxy.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><a href="#nested_class_summary">Nested</a>&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.service</div> <h2 title="Class StorageProxy" class="title">Class StorageProxy</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>org.apache.cassandra.service.StorageProxy</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/service/StorageProxyMBean.html" title="interface in org.apache.cassandra.service">StorageProxyMBean</a></dd> </dl> <hr> <br> <pre>public class <span class="strong">StorageProxy</span> extends java.lang.Object implements <a href="../../../../org/apache/cassandra/service/StorageProxyMBean.html" title="interface in org.apache.cassandra.service">StorageProxyMBean</a></pre> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- ======== NESTED CLASS SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="nested_class_summary"> <!-- --> </a> <h3>Nested Class Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> <caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Class and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.WritePerformer.html" title="interface in org.apache.cassandra.service">StorageProxy.WritePerformer</a></strong></code>&nbsp;</td> </tr> </table> </li> </ul> <!-- =========== 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 <a href="../../../../org/apache/cassandra/service/StorageProxy.html" title="class in org.apache.cassandra.service">StorageProxy</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#instance">instance</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static java.lang.String</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#MBEAN_NAME">MBEAN_NAME</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>static java.lang.String</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#UNREACHABLE">UNREACHABLE</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>static <a href="../../../../org/apache/cassandra/service/AbstractWriteResponseHandler.html" title="class in org.apache.cassandra.service">AbstractWriteResponseHandler</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#applyCounterMutationOnCoordinator(org.apache.cassandra.db.CounterMutation,%20java.lang.String)">applyCounterMutationOnCoordinator</a></strong>(<a href="../../../../org/apache/cassandra/db/CounterMutation.html" title="class in org.apache.cassandra.db">CounterMutation</a>&nbsp;cm, java.lang.String&nbsp;localDataCenter)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static <a href="../../../../org/apache/cassandra/service/AbstractWriteResponseHandler.html" title="class in org.apache.cassandra.service">AbstractWriteResponseHandler</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#applyCounterMutationOnLeader(org.apache.cassandra.db.CounterMutation,%20java.lang.String,%20java.lang.Runnable)">applyCounterMutationOnLeader</a></strong>(<a href="../../../../org/apache/cassandra/db/CounterMutation.html" title="class in org.apache.cassandra.db">CounterMutation</a>&nbsp;cm, java.lang.String&nbsp;localDataCenter, java.lang.Runnable&nbsp;callback)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>static <a href="../../../../org/apache/cassandra/db/ColumnFamily.html" title="class in org.apache.cassandra.db">ColumnFamily</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#cas(java.lang.String,%20java.lang.String,%20java.nio.ByteBuffer,%20org.apache.cassandra.service.CASConditions,%20org.apache.cassandra.db.ColumnFamily,%20org.apache.cassandra.db.ConsistencyLevel,%20org.apache.cassandra.db.ConsistencyLevel)">cas</a></strong>(java.lang.String&nbsp;keyspaceName, java.lang.String&nbsp;cfName, java.nio.ByteBuffer&nbsp;key, <a href="../../../../org/apache/cassandra/service/CASConditions.html" title="interface in org.apache.cassandra.service">CASConditions</a>&nbsp;conditions, <a href="../../../../org/apache/cassandra/db/ColumnFamily.html" title="class in org.apache.cassandra.db">ColumnFamily</a>&nbsp;updates, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistencyForPaxos, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistencyForCommit)</code> <div class="block">Apply @param updates if and only if the current values in the row for @param key match the provided @param conditions.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static java.util.Map&lt;java.lang.String,java.util.List&lt;java.lang.String&gt;&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#describeSchemaVersions()">describeSchemaVersions</a></strong>()</code> <div class="block">initiate a request/response session with each live node to check whether or not everybody is using the same migration id.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.lang.Long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getCasContentionTimeout()">getCasContentionTimeout</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.lang.Long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getCounterWriteRpcTimeout()">getCounterWriteRpcTimeout</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/service/StorageProxy.html#getHintedHandoffEnabled()">getHintedHandoffEnabled</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getHintedHandoffEnabledByDC()">getHintedHandoffEnabledByDC</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/service/StorageProxy.html#getHintsInProgress()">getHintsInProgress</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static java.util.List&lt;java.net.InetAddress&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getLiveSortedEndpoints(org.apache.cassandra.db.Keyspace,%20java.nio.ByteBuffer)">getLiveSortedEndpoints</a></strong>(<a href="../../../../org/apache/cassandra/db/Keyspace.html" title="class in org.apache.cassandra.db">Keyspace</a>&nbsp;keyspace, java.nio.ByteBuffer&nbsp;key)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getMaxHintsInProgress()">getMaxHintsInProgress</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getMaxHintWindow()">getMaxHintWindow</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRangeOperations()">getRangeOperations</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.lang.Long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRangeRpcTimeout()">getRangeRpcTimeout</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>static java.util.List&lt;<a href="../../../../org/apache/cassandra/db/Row.html" title="class in org.apache.cassandra.db">Row</a>&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRangeSlice(org.apache.cassandra.db.AbstractRangeCommand,%20org.apache.cassandra.db.ConsistencyLevel)">getRangeSlice</a></strong>(<a href="../../../../org/apache/cassandra/db/AbstractRangeCommand.html" title="class in org.apache.cassandra.db">AbstractRangeCommand</a>&nbsp;command, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistency_level)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getReadOperations()">getReadOperations</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getReadRepairAttempted()">getReadRepairAttempted</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getReadRepairRepairedBackground()">getReadRepairRepairedBackground</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getReadRepairRepairedBlocking()">getReadRepairRepairedBlocking</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.lang.Long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getReadRpcTimeout()">getReadRpcTimeout</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long[]</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRecentRangeLatencyHistogramMicros()">getRecentRangeLatencyHistogramMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>double</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRecentRangeLatencyMicros()">getRecentRangeLatencyMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long[]</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRecentReadLatencyHistogramMicros()">getRecentReadLatencyHistogramMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>double</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRecentReadLatencyMicros()">getRecentReadLatencyMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long[]</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRecentWriteLatencyHistogramMicros()">getRecentWriteLatencyHistogramMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>double</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRecentWriteLatencyMicros()">getRecentWriteLatencyMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.lang.Long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getRpcTimeout()">getRpcTimeout</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.Map&lt;java.lang.String,java.util.List&lt;java.lang.String&gt;&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getSchemaVersions()">getSchemaVersions</a></strong>()</code> <div class="block">Returns each live node's schema version</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getTotalHints()">getTotalHints</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>long[]</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getTotalRangeLatencyHistogramMicros()">getTotalRangeLatencyHistogramMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getTotalRangeLatencyMicros()">getTotalRangeLatencyMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>long[]</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getTotalReadLatencyHistogramMicros()">getTotalReadLatencyHistogramMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getTotalReadLatencyMicros()">getTotalReadLatencyMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>long[]</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getTotalWriteLatencyHistogramMicros()">getTotalWriteLatencyHistogramMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getTotalWriteLatencyMicros()">getTotalWriteLatencyMicros</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.lang.Long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getTruncateRpcTimeout()">getTruncateRpcTimeout</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getWriteOperations()">getWriteOperations</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.lang.Long</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#getWriteRpcTimeout()">getWriteRpcTimeout</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>static void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#mutate(java.util.Collection,%20org.apache.cassandra.db.ConsistencyLevel)">mutate</a></strong>(java.util.Collection&lt;? extends <a href="../../../../org/apache/cassandra/db/IMutation.html" title="interface in org.apache.cassandra.db">IMutation</a>&gt;&nbsp;mutations, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistency_level)</code> <div class="block">Use this method to have these Mutations applied across all replicas.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#mutateAtomically(java.util.Collection,%20org.apache.cassandra.db.ConsistencyLevel)">mutateAtomically</a></strong>(java.util.Collection&lt;<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&gt;&nbsp;mutations, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistency_level)</code> <div class="block">See mutate.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>static <a href="../../../../org/apache/cassandra/service/AbstractWriteResponseHandler.html" title="class in org.apache.cassandra.service">AbstractWriteResponseHandler</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#mutateCounter(org.apache.cassandra.db.CounterMutation,%20java.lang.String)">mutateCounter</a></strong>(<a href="../../../../org/apache/cassandra/db/CounterMutation.html" title="class in org.apache.cassandra.db">CounterMutation</a>&nbsp;cm, java.lang.String&nbsp;localDataCenter)</code> <div class="block">Handle counter mutation on the coordinator host.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#mutateWithTriggers(java.util.Collection,%20org.apache.cassandra.db.ConsistencyLevel,%20boolean)">mutateWithTriggers</a></strong>(java.util.Collection&lt;? extends <a href="../../../../org/apache/cassandra/db/IMutation.html" title="interface in org.apache.cassandra.db">IMutation</a>&gt;&nbsp;mutations, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistencyLevel, boolean&nbsp;mutateAtomically)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>static <a href="../../../../org/apache/cassandra/service/AbstractWriteResponseHandler.html" title="class in org.apache.cassandra.service">AbstractWriteResponseHandler</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#performWrite(org.apache.cassandra.db.IMutation,%20org.apache.cassandra.db.ConsistencyLevel,%20java.lang.String,%20org.apache.cassandra.service.StorageProxy.WritePerformer,%20java.lang.Runnable,%20org.apache.cassandra.db.WriteType)">performWrite</a></strong>(<a href="../../../../org/apache/cassandra/db/IMutation.html" title="interface in org.apache.cassandra.db">IMutation</a>&nbsp;mutation, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistency_level, java.lang.String&nbsp;localDataCenter, <a href="../../../../org/apache/cassandra/service/StorageProxy.WritePerformer.html" title="interface in org.apache.cassandra.service">StorageProxy.WritePerformer</a>&nbsp;performer, java.lang.Runnable&nbsp;callback, <a href="../../../../org/apache/cassandra/db/WriteType.html" title="enum in org.apache.cassandra.db">WriteType</a>&nbsp;writeType)</code> <div class="block">Perform the write of a mutation given a WritePerformer.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static java.util.List&lt;<a href="../../../../org/apache/cassandra/db/Row.html" title="class in org.apache.cassandra.db">Row</a>&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#read(java.util.List,%20org.apache.cassandra.db.ConsistencyLevel)">read</a></strong>(java.util.List&lt;<a href="../../../../org/apache/cassandra/db/ReadCommand.html" title="class in org.apache.cassandra.db">ReadCommand</a>&gt;&nbsp;commands, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistency_level)</code> <div class="block">Performs the actual reading of a row out of the StorageService, fetching a specific set of column names from a given column family.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#reloadTriggerClasses()">reloadTriggerClasses</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#sendToHintedEndpoints(org.apache.cassandra.db.Mutation,%20java.lang.Iterable,%20org.apache.cassandra.service.AbstractWriteResponseHandler,%20java.lang.String)">sendToHintedEndpoints</a></strong>(<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;mutation, java.lang.Iterable&lt;java.net.InetAddress&gt;&nbsp;targets, <a href="../../../../org/apache/cassandra/service/AbstractWriteResponseHandler.html" title="class in org.apache.cassandra.service">AbstractWriteResponseHandler</a>&nbsp;responseHandler, java.lang.String&nbsp;localDataCenter)</code> <div class="block">Send the mutations to the right targets, write it locally if it corresponds or writes a hint when the node is not available.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setCasContentionTimeout(java.lang.Long)">setCasContentionTimeout</a></strong>(java.lang.Long&nbsp;timeoutInMillis)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setCounterWriteRpcTimeout(java.lang.Long)">setCounterWriteRpcTimeout</a></strong>(java.lang.Long&nbsp;timeoutInMillis)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setHintedHandoffEnabled(boolean)">setHintedHandoffEnabled</a></strong>(boolean&nbsp;b)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setHintedHandoffEnabledByDCList(java.lang.String)">setHintedHandoffEnabledByDCList</a></strong>(java.lang.String&nbsp;dcNames)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setMaxHintsInProgress(int)">setMaxHintsInProgress</a></strong>(int&nbsp;qs)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setMaxHintWindow(int)">setMaxHintWindow</a></strong>(int&nbsp;ms)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setRangeRpcTimeout(java.lang.Long)">setRangeRpcTimeout</a></strong>(java.lang.Long&nbsp;timeoutInMillis)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setReadRpcTimeout(java.lang.Long)">setReadRpcTimeout</a></strong>(java.lang.Long&nbsp;timeoutInMillis)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setRpcTimeout(java.lang.Long)">setRpcTimeout</a></strong>(java.lang.Long&nbsp;timeoutInMillis)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setTruncateRpcTimeout(java.lang.Long)">setTruncateRpcTimeout</a></strong>(java.lang.Long&nbsp;timeoutInMillis)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#setWriteRpcTimeout(java.lang.Long)">setWriteRpcTimeout</a></strong>(java.lang.Long&nbsp;timeoutInMillis)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static boolean</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#shouldHint(java.net.InetAddress)">shouldHint</a></strong>(java.net.InetAddress&nbsp;ep)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>static java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#submitHint(org.apache.cassandra.db.Mutation,%20java.net.InetAddress,%20org.apache.cassandra.service.AbstractWriteResponseHandler)">submitHint</a></strong>(<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;mutation, java.net.InetAddress&nbsp;target, <a href="../../../../org/apache/cassandra/service/AbstractWriteResponseHandler.html" title="class in org.apache.cassandra.service">AbstractWriteResponseHandler</a>&nbsp;responseHandler)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#truncateBlocking(java.lang.String,%20java.lang.String)">truncateBlocking</a></strong>(java.lang.String&nbsp;keyspace, java.lang.String&nbsp;cfname)</code> <div class="block">Performs the truncate operatoin, which effectively deletes all data from the column family cfname</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#verifyNoHintsInProgress()">verifyNoHintsInProgress</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/service/StorageProxy.html#writeHintForMutation(org.apache.cassandra.db.Mutation,%20long,%20int,%20java.net.InetAddress)">writeHintForMutation</a></strong>(<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;mutation, long&nbsp;now, int&nbsp;ttl, java.net.InetAddress&nbsp;target)</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="MBEAN_NAME"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>MBEAN_NAME</h4> <pre>public static final&nbsp;java.lang.String MBEAN_NAME</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.cassandra.service.StorageProxy.MBEAN_NAME">Constant Field Values</a></dd></dl> </li> </ul> <a name="UNREACHABLE"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>UNREACHABLE</h4> <pre>public static final&nbsp;java.lang.String UNREACHABLE</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.cassandra.service.StorageProxy.UNREACHABLE">Constant Field Values</a></dd></dl> </li> </ul> <a name="instance"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>instance</h4> <pre>public static final&nbsp;<a href="../../../../org/apache/cassandra/service/StorageProxy.html" title="class in org.apache.cassandra.service">StorageProxy</a> instance</pre> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method_detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="cas(java.lang.String, java.lang.String, java.nio.ByteBuffer, org.apache.cassandra.service.CASConditions, org.apache.cassandra.db.ColumnFamily, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.db.ConsistencyLevel)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>cas</h4> <pre>public static&nbsp;<a href="../../../../org/apache/cassandra/db/ColumnFamily.html" title="class in org.apache.cassandra.db">ColumnFamily</a>&nbsp;cas(java.lang.String&nbsp;keyspaceName, java.lang.String&nbsp;cfName, java.nio.ByteBuffer&nbsp;key, <a href="../../../../org/apache/cassandra/service/CASConditions.html" title="interface in org.apache.cassandra.service">CASConditions</a>&nbsp;conditions, <a href="../../../../org/apache/cassandra/db/ColumnFamily.html" title="class in org.apache.cassandra.db">ColumnFamily</a>&nbsp;updates, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistencyForPaxos, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistencyForCommit) throws <a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a>, <a href="../../../../org/apache/cassandra/exceptions/IsBootstrappingException.html" title="class in org.apache.cassandra.exceptions">IsBootstrappingException</a>, <a href="../../../../org/apache/cassandra/exceptions/ReadTimeoutException.html" title="class in org.apache.cassandra.exceptions">ReadTimeoutException</a>, <a href="../../../../org/apache/cassandra/exceptions/WriteTimeoutException.html" title="class in org.apache.cassandra.exceptions">WriteTimeoutException</a>, <a href="../../../../org/apache/cassandra/exceptions/InvalidRequestException.html" title="class in org.apache.cassandra.exceptions">InvalidRequestException</a></pre> <div class="block">Apply @param updates if and only if the current values in the row for @param key match the provided @param conditions. The algorithm is "raw" Paxos: that is, Paxos minus leader election -- any node in the cluster may propose changes for any row, which (that is, the row) is the unit of values being proposed, not single columns. The Paxos cohort is only the replicas for the given key, not the entire cluster. So we expect performance to be reasonable, but CAS is still intended to be used "when you really need it," not for all your updates. There are three phases to Paxos: 1. Prepare: the coordinator generates a ballot (timeUUID in our case) and asks replicas to (a) promise not to accept updates from older ballots and (b) tell us about the most recent update it has already accepted. 2. Accept: if a majority of replicas reply, the coordinator asks replicas to accept the value of the highest proposal ballot it heard about, or a new value if no in-progress proposals were reported. 3. Commit (Learn): if a majority of replicas acknowledge the accept request, we can commit the new value. Commit procedure is not covered in "Paxos Made Simple," and only briefly mentioned in "Paxos Made Live," so here is our approach: 3a. The coordinator sends a commit message to all replicas with the ballot and value. 3b. Because of 1-2, this will be the highest-seen commit ballot. The replicas will note that, and send it with subsequent promise replies. This allows us to discard acceptance records for successfully committed replicas, without allowing incomplete proposals to commit erroneously later on. Note that since we are performing a CAS rather than a simple update, we perform a read (of committed values) between the prepare and accept phases. This gives us a slightly longer window for another coordinator to come along and trump our own promise with a newer one but is otherwise safe.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>keyspaceName</code> - the keyspace for the CAS</dd><dd><code>cfName</code> - the column family for the CAS</dd><dd><code>key</code> - the row key for the row to CAS</dd><dd><code>conditions</code> - the conditions for the CAS to apply.</dd><dd><code>updates</code> - the value to insert if <code>condtions</code> matches the current values.</dd><dd><code>consistencyForPaxos</code> - the consistency for the paxos prepare and propose round. This can only be either SERIAL or LOCAL_SERIAL.</dd><dd><code>consistencyForCommit</code> - the consistency for write done during the commit phase. This can be anything, except SERIAL or LOCAL_SERIAL.</dd> <dt><span class="strong">Returns:</span></dt><dd>null if the operation succeeds in updating the row, or the current values corresponding to conditions. (since, if the CAS doesn't succeed, it means the current value do not match the conditions).</dd> <dt><span class="strong">Throws:</span></dt> <dd><code><a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/IsBootstrappingException.html" title="class in org.apache.cassandra.exceptions">IsBootstrappingException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/ReadTimeoutException.html" title="class in org.apache.cassandra.exceptions">ReadTimeoutException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/WriteTimeoutException.html" title="class in org.apache.cassandra.exceptions">WriteTimeoutException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/InvalidRequestException.html" title="class in org.apache.cassandra.exceptions">InvalidRequestException</a></code></dd></dl> </li> </ul> <a name="mutate(java.util.Collection, org.apache.cassandra.db.ConsistencyLevel)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>mutate</h4> <pre>public static&nbsp;void&nbsp;mutate(java.util.Collection&lt;? extends <a href="../../../../org/apache/cassandra/db/IMutation.html" title="interface in org.apache.cassandra.db">IMutation</a>&gt;&nbsp;mutations, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistency_level) throws <a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a>, <a href="../../../../org/apache/cassandra/exceptions/OverloadedException.html" title="class in org.apache.cassandra.exceptions">OverloadedException</a>, <a href="../../../../org/apache/cassandra/exceptions/WriteTimeoutException.html" title="class in org.apache.cassandra.exceptions">WriteTimeoutException</a></pre> <div class="block">Use this method to have these Mutations applied across all replicas. This method will take care of the possibility of a replica being down and hint the data across to some other replica.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>mutations</code> - the mutations to be applied across the replicas</dd><dd><code>consistency_level</code> - the consistency level for the operation</dd> <dt><span class="strong">Throws:</span></dt> <dd><code><a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/OverloadedException.html" title="class in org.apache.cassandra.exceptions">OverloadedException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/WriteTimeoutException.html" title="class in org.apache.cassandra.exceptions">WriteTimeoutException</a></code></dd></dl> </li> </ul> <a name="mutateWithTriggers(java.util.Collection, org.apache.cassandra.db.ConsistencyLevel, boolean)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>mutateWithTriggers</h4> <pre>public static&nbsp;void&nbsp;mutateWithTriggers(java.util.Collection&lt;? extends <a href="../../../../org/apache/cassandra/db/IMutation.html" title="interface in org.apache.cassandra.db">IMutation</a>&gt;&nbsp;mutations, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistencyLevel, boolean&nbsp;mutateAtomically) throws <a href="../../../../org/apache/cassandra/exceptions/WriteTimeoutException.html" title="class in org.apache.cassandra.exceptions">WriteTimeoutException</a>, <a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a>, <a href="../../../../org/apache/cassandra/exceptions/OverloadedException.html" title="class in org.apache.cassandra.exceptions">OverloadedException</a>, <a href="../../../../org/apache/cassandra/exceptions/InvalidRequestException.html" title="class in org.apache.cassandra.exceptions">InvalidRequestException</a></pre> <dl><dt><span class="strong">Throws:</span></dt> <dd><code><a href="../../../../org/apache/cassandra/exceptions/WriteTimeoutException.html" title="class in org.apache.cassandra.exceptions">WriteTimeoutException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/OverloadedException.html" title="class in org.apache.cassandra.exceptions">OverloadedException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/InvalidRequestException.html" title="class in org.apache.cassandra.exceptions">InvalidRequestException</a></code></dd></dl> </li> </ul> <a name="mutateAtomically(java.util.Collection, org.apache.cassandra.db.ConsistencyLevel)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>mutateAtomically</h4> <pre>public static&nbsp;void&nbsp;mutateAtomically(java.util.Collection&lt;<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&gt;&nbsp;mutations, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistency_level) throws <a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a>, <a href="../../../../org/apache/cassandra/exceptions/OverloadedException.html" title="class in org.apache.cassandra.exceptions">OverloadedException</a>, <a href="../../../../org/apache/cassandra/exceptions/WriteTimeoutException.html" title="class in org.apache.cassandra.exceptions">WriteTimeoutException</a></pre> <div class="block">See mutate. Adds additional steps before and after writing a batch. Before writing the batch (but after doing availability check against the FD for the row replicas): write the entire batch to a batchlog elsewhere in the cluster. After: remove the batchlog entry (after writing hints for the batch rows, if necessary).</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>mutations</code> - the Mutations to be applied across the replicas</dd><dd><code>consistency_level</code> - the consistency level for the operation</dd> <dt><span class="strong">Throws:</span></dt> <dd><code><a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/OverloadedException.html" title="class in org.apache.cassandra.exceptions">OverloadedException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/WriteTimeoutException.html" title="class in org.apache.cassandra.exceptions">WriteTimeoutException</a></code></dd></dl> </li> </ul> <a name="performWrite(org.apache.cassandra.db.IMutation, org.apache.cassandra.db.ConsistencyLevel, java.lang.String, org.apache.cassandra.service.StorageProxy.WritePerformer, java.lang.Runnable, org.apache.cassandra.db.WriteType)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>performWrite</h4> <pre>public static&nbsp;<a href="../../../../org/apache/cassandra/service/AbstractWriteResponseHandler.html" title="class in org.apache.cassandra.service">AbstractWriteResponseHandler</a>&nbsp;performWrite(<a href="../../../../org/apache/cassandra/db/IMutation.html" title="interface in org.apache.cassandra.db">IMutation</a>&nbsp;mutation, <a href="../../../../org/apache/cassandra/db/ConsistencyLevel.html" title="enum in org.apache.cassandra.db">ConsistencyLevel</a>&nbsp;consistency_level, java.lang.String&nbsp;localDataCenter, <a href="../../../../org/apache/cassandra/service/StorageProxy.WritePerformer.html" title="interface in org.apache.cassandra.service">StorageProxy.WritePerformer</a>&nbsp;performer, java.lang.Runnable&nbsp;callback, <a href="../../../../org/apache/cassandra/db/WriteType.html" title="enum in org.apache.cassandra.db">WriteType</a>&nbsp;writeType) throws <a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a>, <a href="../../../../org/apache/cassandra/exceptions/OverloadedException.html" title="class in org.apache.cassandra.exceptions">OverloadedException</a></pre> <div class="block">Perform the write of a mutation given a WritePerformer. Gather the list of write endpoints, apply locally and/or forward the mutation to said write endpoint (deletaged to the actual WritePerformer) and wait for the responses based on consistency level.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>mutation</code> - the mutation to be applied</dd><dd><code>consistency_level</code> - the consistency level for the write operation</dd><dd><code>performer</code> - the WritePerformer in charge of appliying the mutation given the list of write endpoints (either standardWritePerformer for standard writes or counterWritePerformer for counter writes).</dd><dd><code>callback</code> - an optional callback to be run if and when the write is successful.</dd> <dt><span class="strong">Throws:</span></dt> <dd><code><a href="../../../../org/apache/cassandra/exceptions/UnavailableException.html" title="class in org.apache.cassandra.exceptions">UnavailableException</a></code></dd> <dd><code><a href="../../../../org/apache/cassandra/exceptions/OverloadedException.html" title="class in org.apache.cassandra.exceptions">OverloadedException</a></code></dd></dl> </li> </ul> <a name="sendToHintedEndpoints(org.apache.cassandra.db.Mutation, java.lang.Iterable, org.apache.cassandra.service.AbstractWriteResponseHandler, java.lang.String)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>sendToHintedEndpoints</h4> <pre>public static&nbsp;void&nbsp;sendToHintedEndpoints(<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;mutation, java.lang.Iterable&lt;java.net.InetAddress&gt;&nbsp;targets,