blob: f758d43fefc886c2dcdd4c95404cf0c4b60d2155 [file] [log] [blame]
<!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 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AsyncKuduSession (Kudu 1.4.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AsyncKuduSession (Kudu 1.4.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<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/AsyncKuduSession.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/kudu/client/AsyncKuduScanner.ReadMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kudu/client/ColumnRangePredicate.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kudu/client/AsyncKuduSession.html" target="_top">Frames</a></li>
<li><a href="AsyncKuduSession.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;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.kudu.client</div>
<h2 title="Class AsyncKuduSession" class="title">Class AsyncKuduSession</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.kudu.client.AsyncKuduSession</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Public
@InterfaceStability.Unstable
<a href="http://docs.oracle.com/javase/7/docs/api/javax/annotation/concurrent.NotThreadSafe.html?is-external=true" title="class or interface in javax.annotation">@NotThreadSafe</a>
public class <span class="typeNameLabel">AsyncKuduSession</span>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></pre>
<div class="block">An <code>AsyncKuduSession</code> belongs to a specific <a href="../../../../org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client"><code>AsyncKuduClient</code></a>, and represents a
context in which all write data access should take place. Within a session,
multiple operations may be accumulated and batched together for better
efficiency. Settings like timeouts, priorities, and trace IDs are also set
per session.
<p><code>AsyncKuduSession</code> is separate from <a href="../../../../org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client"><code>AsyncKuduClient</code></a> because, in a multi-threaded
application, different threads may need to concurrently execute
transactions. Similar to a JDBC "session", transaction boundaries will be
delineated on a per-session basis -- in between a "BeginTransaction" and
"Commit" call on a given session, all operations will be part of the same
transaction. Meanwhile another concurrent session object can safely run
non-transactional work or other transactions without interfering.
<p>Therefore, this class is <b>not</b> thread-safe.
<p>Additionally, there is a guarantee that writes from different sessions do not
get batched together into the same RPCs -- this means that latency-sensitive
clients can run through the same <a href="../../../../org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client"><code>AsyncKuduClient</code></a> object as throughput-oriented
clients, perhaps by setting the latency-sensitive session's timeouts low and
priorities high. Without the separation of batches, a latency-sensitive
single-row insert might get batched along with 10MB worth of inserts from the
batch writer, thus delaying the response significantly.
<p>Timeouts are handled differently depending on the flush mode.
With <a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html#AUTO_FLUSH_SYNC"><code>AUTO_FLUSH_SYNC</code></a>, the timeout is set
on each <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#apply-org.apache.kudu.client.Operation-">apply</a>()'d operation.
With <a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html#AUTO_FLUSH_BACKGROUND"><code>AUTO_FLUSH_BACKGROUND</code></a> and
<a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html#MANUAL_FLUSH"><code>MANUAL_FLUSH</code></a>, the timeout is assigned to a
whole batch of operations upon <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#flush--">flush</a>()'ing. It means that in a situation
with a timeout of 500ms and a flush interval of 1000ms, an operation can be outstanding for up to
1500ms before being timed out.
<p><strong>Warning: a note on out-of-order operations</strong>
<p>When using <code>AsyncKuduSession</code>, it is not difficult to trigger concurrent flushes on
the same session. The result is that operations applied in a particular order within a single
session may be applied in a different order on the server side, even for a single tablet. To
prevent this behavior, ensure that only one flush is outstanding at a given time (the maximum
concurrent flushes per <code>AsyncKuduSession</code> is hard-coded to 2).
<p>If operation interleaving would be unacceptable for your application, consider using one of
the following strategies to avoid it:
<ol>
<li>When using <a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html#MANUAL_FLUSH"><code>MANUAL_FLUSH</code></a> mode,
wait for one <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#flush--"><code>flush()</code></a> to <code>join()</code> before triggering another flush.
<li>When using <a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html#AUTO_FLUSH_SYNC"><code>AUTO_FLUSH_SYNC</code></a>
mode, wait for each <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#apply-org.apache.kudu.client.Operation-"><code>apply()</code></a> to <code>join()</code> before applying another operation.
<li>Consider not using
<a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html#AUTO_FLUSH_BACKGROUND"><code>AUTO_FLUSH_BACKGROUND</code></a> mode.
<li>Make your application resilient to out-of-order application of writes.
<li>Avoid applying an <a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client"><code>Operation</code></a> on a particular row until any previous write to that
row has been successfully flushed.
</ol>
<p>For more information on per-session operation interleaving, see
<a href="https://issues.apache.org/jira/browse/KUDU-1767">KUDU-1767</a>.</div>
</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.kudu.client.SessionConfiguration">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></h3>
<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client">SessionConfiguration.FlushMode</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" 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 org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#LOG">LOG</a></span></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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#apply-org.apache.kudu.client.Operation-">apply</a></span>(<a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a>&nbsp;operation)</code>
<div class="block">Apply the given operation.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#close--">close</a></span>()</code>
<div class="block">Flushes the buffered operations and marks this session as closed.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#countPendingErrors--">countPendingErrors</a></span>()</code>
<div class="block">Return the number of errors which are pending.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#flush--">flush</a></span>()</code>
<div class="block">Flush buffered writes.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client">SessionConfiguration.FlushMode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#getFlushMode--">getFlushMode</a></span>()</code>
<div class="block">Get the current flush mode.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/RowErrorsAndOverflowStatus.html" title="class in org.apache.kudu.client">RowErrorsAndOverflowStatus</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#getPendingErrors--">getPendingErrors</a></span>()</code>
<div class="block">Return any errors from previous calls.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#getTimeoutMillis--">getTimeoutMillis</a></span>()</code>
<div class="block">Get the current timeout.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#hasPendingOperations--">hasPendingOperations</a></span>()</code>
<div class="block">Check if there are operations that haven't been completely applied.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#isClosed--">isClosed</a></span>()</code>
<div class="block">Returns true if this session has already been closed.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#isIgnoreAllDuplicateRows--">isIgnoreAllDuplicateRows</a></span>()</code>
<div class="block">Tells if the session is currently ignoring row errors when the whole list returned by a tablet
server is of the AlreadyPresent type.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#setExternalConsistencyMode-org.apache.kudu.client.ExternalConsistencyMode-">setExternalConsistencyMode</a></span>(<a href="../../../../org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client">ExternalConsistencyMode</a>&nbsp;consistencyMode)</code>
<div class="block">Set the new external consistency mode for this session.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#setFlushInterval-int-">setFlushInterval</a></span>(int&nbsp;interval)</code>
<div class="block">Set the flush interval, which will be used for the next scheduling decision.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#setFlushMode-org.apache.kudu.client.SessionConfiguration.FlushMode-">setFlushMode</a></span>(<a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client">SessionConfiguration.FlushMode</a>&nbsp;flushMode)</code>
<div class="block">Set the new flush mode for this session.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#setIgnoreAllDuplicateRows-boolean-">setIgnoreAllDuplicateRows</a></span>(boolean&nbsp;ignoreAllDuplicateRows)</code>
<div class="block">Configures the option to ignore all the row errors if they are all of the AlreadyPresent type.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#setMutationBufferLowWatermark-float-">setMutationBufferLowWatermark</a></span>(float&nbsp;mutationBufferLowWatermarkPercentage)</code>
<div class="block">Set the low watermark for this session.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#setMutationBufferSpace-int-">setMutationBufferSpace</a></span>(int&nbsp;size)</code>
<div class="block">Set the number of operations that can be buffered.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#setTimeoutMillis-long-">setTimeoutMillis</a></span>(long&nbsp;timeout)</code>
<div class="block">Sets the timeout for the next applied operations.</div>
</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.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></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="LOG">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LOG</h4>
<pre>public static final&nbsp;org.slf4j.Logger LOG</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getFlushMode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFlushMode</h4>
<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client">SessionConfiguration.FlushMode</a>&nbsp;getFlushMode()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#getFlushMode--">SessionConfiguration</a></code></span></div>
<div class="block">Get the current flush mode.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#getFlushMode--">getFlushMode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>flush mode, <a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html#AUTO_FLUSH_SYNC"><code>AUTO_FLUSH_SYNC</code></a> by default</dd>
</dl>
</li>
</ul>
<a name="setFlushMode-org.apache.kudu.client.SessionConfiguration.FlushMode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFlushMode</h4>
<pre>public&nbsp;void&nbsp;setFlushMode(<a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client">SessionConfiguration.FlushMode</a>&nbsp;flushMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setFlushMode-org.apache.kudu.client.SessionConfiguration.FlushMode-">SessionConfiguration</a></code></span></div>
<div class="block">Set the new flush mode for this session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setFlushMode-org.apache.kudu.client.SessionConfiguration.FlushMode-">setFlushMode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>flushMode</code> - new flush mode, can be the same as the previous one.</dd>
</dl>
</li>
</ul>
<a name="setExternalConsistencyMode-org.apache.kudu.client.ExternalConsistencyMode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExternalConsistencyMode</h4>
<pre>public&nbsp;void&nbsp;setExternalConsistencyMode(<a href="../../../../org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client">ExternalConsistencyMode</a>&nbsp;consistencyMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setExternalConsistencyMode-org.apache.kudu.client.ExternalConsistencyMode-">SessionConfiguration</a></code></span></div>
<div class="block">Set the new external consistency mode for this session.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setExternalConsistencyMode-org.apache.kudu.client.ExternalConsistencyMode-">setExternalConsistencyMode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>consistencyMode</code> - new external consistency mode, can the same as the previous one.</dd>
</dl>
</li>
</ul>
<a name="setMutationBufferSpace-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMutationBufferSpace</h4>
<pre>public&nbsp;void&nbsp;setMutationBufferSpace(int&nbsp;size)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setMutationBufferSpace-int-">SessionConfiguration</a></code></span></div>
<div class="block">Set the number of operations that can be buffered.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setMutationBufferSpace-int-">setMutationBufferSpace</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>size</code> - number of ops.</dd>
</dl>
</li>
</ul>
<a name="setMutationBufferLowWatermark-float-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMutationBufferLowWatermark</h4>
<pre>public&nbsp;void&nbsp;setMutationBufferLowWatermark(float&nbsp;mutationBufferLowWatermarkPercentage)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setMutationBufferLowWatermark-float-">SessionConfiguration</a></code></span></div>
<div class="block">Set the low watermark for this session. The default is set to half the mutation buffer space.
For example, a buffer space of 1000 with a low watermark set to 50% (0.5) will start randomly
sending PleaseRetryExceptions once there's an outstanding flush and the buffer is over 500.
As the buffer gets fuller, it becomes likelier to hit the exception.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setMutationBufferLowWatermark-float-">setMutationBufferLowWatermark</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mutationBufferLowWatermarkPercentage</code> - a new low watermark as a percentage,
has to be between 0 and 1 (inclusive). A value of 1 disables
the low watermark since it's the same as the high one</dd>
</dl>
</li>
</ul>
<a name="setFlushInterval-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFlushInterval</h4>
<pre>public&nbsp;void&nbsp;setFlushInterval(int&nbsp;interval)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setFlushInterval-int-">SessionConfiguration</a></code></span></div>
<div class="block">Set the flush interval, which will be used for the next scheduling decision.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setFlushInterval-int-">setFlushInterval</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>interval</code> - interval in milliseconds.</dd>
</dl>
</li>
</ul>
<a name="setTimeoutMillis-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeoutMillis</h4>
<pre>public&nbsp;void&nbsp;setTimeoutMillis(long&nbsp;timeout)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setTimeoutMillis-long-">SessionConfiguration</a></code></span></div>
<div class="block">Sets the timeout for the next applied operations.
The default timeout is 0, which disables the timeout functionality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setTimeoutMillis-long-">setTimeoutMillis</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - Timeout in milliseconds.</dd>
</dl>
</li>
</ul>
<a name="getTimeoutMillis--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimeoutMillis</h4>
<pre>public&nbsp;long&nbsp;getTimeoutMillis()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#getTimeoutMillis--">SessionConfiguration</a></code></span></div>
<div class="block">Get the current timeout.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#getTimeoutMillis--">getTimeoutMillis</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>operation timeout in milliseconds, 0 if none was configured.</dd>
</dl>
</li>
</ul>
<a name="isClosed--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isClosed</h4>
<pre>public&nbsp;boolean&nbsp;isClosed()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#isClosed--">SessionConfiguration</a></code></span></div>
<div class="block">Returns true if this session has already been closed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#isClosed--">isClosed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
</dl>
</li>
</ul>
<a name="isIgnoreAllDuplicateRows--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIgnoreAllDuplicateRows</h4>
<pre>public&nbsp;boolean&nbsp;isIgnoreAllDuplicateRows()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#isIgnoreAllDuplicateRows--">SessionConfiguration</a></code></span></div>
<div class="block">Tells if the session is currently ignoring row errors when the whole list returned by a tablet
server is of the AlreadyPresent type.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#isIgnoreAllDuplicateRows--">isIgnoreAllDuplicateRows</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the session is enforcing this, else false</dd>
</dl>
</li>
</ul>
<a name="setIgnoreAllDuplicateRows-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIgnoreAllDuplicateRows</h4>
<pre>public&nbsp;void&nbsp;setIgnoreAllDuplicateRows(boolean&nbsp;ignoreAllDuplicateRows)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setIgnoreAllDuplicateRows-boolean-">SessionConfiguration</a></code></span></div>
<div class="block">Configures the option to ignore all the row errors if they are all of the AlreadyPresent type.
This can be needed when facing KUDU-568. The effect of enabling this is that operation
responses that match this pattern will be cleared of their row errors, meaning that we consider
them successful.
<p>Disabled by default.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#setIgnoreAllDuplicateRows-boolean-">setIgnoreAllDuplicateRows</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ignoreAllDuplicateRows</code> - true if this session should enforce this, else false</dd>
</dl>
</li>
</ul>
<a name="countPendingErrors--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countPendingErrors</h4>
<pre>public&nbsp;int&nbsp;countPendingErrors()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#countPendingErrors--">SessionConfiguration</a></code></span></div>
<div class="block">Return the number of errors which are pending. Errors may accumulate when
using <a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html#AUTO_FLUSH_BACKGROUND"><code>AUTO_FLUSH_BACKGROUND</code></a> mode.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#countPendingErrors--">countPendingErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a count of errors</dd>
</dl>
</li>
</ul>
<a name="getPendingErrors--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPendingErrors</h4>
<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/RowErrorsAndOverflowStatus.html" title="class in org.apache.kudu.client">RowErrorsAndOverflowStatus</a>&nbsp;getPendingErrors()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#getPendingErrors--">SessionConfiguration</a></code></span></div>
<div class="block">Return any errors from previous calls. If there were more errors
than could be held in the session's error storage, the overflow state is set to true.
<p>Clears the pending errors.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#getPendingErrors--">getPendingErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an object that contains the errors and the overflow status</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a>&gt;&gt;&nbsp;close()</pre>
<div class="block">Flushes the buffered operations and marks this session as closed.
See the javadoc on <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#flush--"><code>flush()</code></a> on how to deal with exceptions coming out of this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Deferred whose callback chain will be invoked when.
everything that was buffered at the time of the call has been flushed.</dd>
</dl>
</li>
</ul>
<a name="flush--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flush</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a>&gt;&gt;&nbsp;flush()</pre>
<div class="block">Flush buffered writes.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>Deferred</code> whose callback chain will be invoked when all applied operations at
the time of the call have been flushed.</dd>
</dl>
</li>
</ul>
<a name="hasPendingOperations--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasPendingOperations</h4>
<pre>public&nbsp;boolean&nbsp;hasPendingOperations()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#hasPendingOperations--">SessionConfiguration</a></code></span></div>
<div class="block">Check if there are operations that haven't been completely applied.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html#hasPendingOperations--">hasPendingOperations</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if operations are pending, else false.</dd>
</dl>
</li>
</ul>
<a name="apply-org.apache.kudu.client.Operation-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>apply</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a>&gt;&nbsp;apply(<a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a>&nbsp;operation)
throws <a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></pre>
<div class="block">Apply the given operation.
<p>
The behavior of this method depends on the configured
<a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client"><code>FlushMode</code></a>. Regardless
of flush mode, however, <code>apply()</code> may begin to perform processing in the background
for the call (e.g looking up the tablet location, etc).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>operation</code> - operation to apply</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Deferred to track this operation</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></code> - if an error happens or <a href="../../../../org/apache/kudu/client/PleaseThrottleException.html" title="class in org.apache.kudu.client"><code>PleaseThrottleException</code></a> is triggered</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client"><code>FlushMode</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<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/AsyncKuduSession.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/kudu/client/AsyncKuduScanner.ReadMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kudu/client/ColumnRangePredicate.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kudu/client/AsyncKuduSession.html" target="_top">Frames</a></li>
<li><a href="AsyncKuduSession.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;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 &#169; 2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>