blob: 26e968bde824b6d14d97d0a40c28007b58ceef57 [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 -->
<title>AsyncKuduClient</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="AsyncKuduClient";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":42,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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="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/AlterTableResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.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/AsyncKuduClient.html" target="_top">Frames</a></li>
<li><a href="AsyncKuduClient.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><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.kudu.client</div>
<h2 title="Class AsyncKuduClient" class="title">Class AsyncKuduClient</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/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.AsyncKuduClient</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Public
@InterfaceStability.Unstable
public class <span class="typeNameLabel">AsyncKuduClient</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></pre>
<div class="block">A fully asynchronous and thread-safe client for Kudu.
<p>
A single Kudu client instance corresponds to a single remote Kudu cluster,
and can be used to read or write any number of tables within that cluster.
An application should use exactly one Kudu client instance per distinct Kudu
cluster it connects to.
In rare cases where a single application needs multiple instances connected
to the same cluster, or when many applications each using one or more Kudu
client instances are running on the same machine, it may be necessary to
adjust the instances to use less resources. See the options in
<a href="../../../../org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html" title="class in org.apache.kudu.client"><code>AsyncKuduClient.AsyncKuduClientBuilder</code></a>.
<h1>Creating a client instance</h1> An <a href="../../../../org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client"><code>AsyncKuduClient</code></a> instance may
be created using the <a href="../../../../org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html" title="class in org.apache.kudu.client"><code>AsyncKuduClient.AsyncKuduClientBuilder</code></a> class. If
a synchronous API is preferred, <a href="../../../../org/apache/kudu/client/KuduClient.KuduClientBuilder.html" title="class in org.apache.kudu.client"><code>KuduClient.KuduClientBuilder</code></a> may be
used instead. See the documentation on these classes for more details on
client configuration options.
<h1>Authenticating to a secure cluster</h1> A Kudu cluster may be configured
such that it requires clients to connect using strong authentication. Clients
can authenticate to such clusters using either of two methods:
<ol>
<li><em>Kerberos credentials</em></li>
<li><em>Authentication tokens</em></li>
</ol>
In a typical environment, Kerberos credentials are used for non-distributed
client applications and for applications which <em>spawn</em> distributed
jobs. Tokens are used for the <em>tasks</em> of distributed jobs, since those
tasks do not have access to the user's Kerberos credentials.
<h2>Authenticating using Kerberos credentials</h2>
In order to integrate with Kerberos, Kudu uses the standard <em>Java
Authentication and Authorization Service</em> (JAAS) API provided by the JDK.
JAAS provides a common way for applications to initialize Kerberos
credentials, store these credentials in a <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a>
instance, and associate the Subject with the current thread of execution.
The Kudu client then accesses the Kerberos credentials in the
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a> and uses them to authenticate to the
remote cluster as necessary.
<p>
Kerberos credentials are typically obtained in one of two ways:
<ol>
<li>The <em>Kerberos ticket cache</em></li>
<li>A <em>keytab</em> file</li>
</ol>
<h3>Authenticating from the Kerberos ticket cache</h3>
The Kerberos <em>ticket cache</em> is a file stored on the local file system
which is automatically initialized when a user runs <em>kinit</em> at the
command line. This is the predominant method for authenticating users in
interactive applications: the user is expected to have run <em>kinit</em>
recently, and the application will find the appropriate credentials in the
ticket cache.
<p>
In the case of the Kudu client, Kudu will automatically look for credentials
in the standard system-configured ticket cache location. No additional code
needs to be written to enable this behavior.
<p>
Kudu will automatically detect if the ticket it has obtained from the ticket
cache is about to expire. When that is the case, it will attempt to re-read
the ticket cache to obtain a new ticket with a later expiration time. So, if
an application needs to run for longer than the lifetime of a single ticket,
the user must ensure that the ticket cache is periodically refreshed, for
example by re-running 'kinit' once each day.
<h3>Authenticating from a keytab</h3>
Long-running applications typically obtain Kerberos credentials from a
Kerberos <em>keytab</em> file. A keytab is essentially a saved password, and
allows the application to obtain new Kerberos tickets whenever the prior
ticket is about to expire.
<p>
The Kudu client does not provide any utility code to facilitate logging in
from a keytab. Instead, applications should invoke the JAAS APIs directly,
and then ensure that the resulting <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a>
instance is associated with the current thread's
<a href="https://docs.oracle.com/javase/8/docs/api/java/security/AccessControlContext.html?is-external=true" title="class or interface in java.security"><code>AccessControlContext</code></a> when instantiating the Kudu client
instance for the first time. The <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a> instance
will be stored and used whenever Kerberos authentication is required.
<p>
<b>Note</b>: if the Kudu client is instantiated with a
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a> as described above, it will <em>not</em>
make any attempt to re-login from the keytab. Instead, the application should
arrange to periodically re-initiate the login process and update the
credentials stored in the same Subject instance as was provided when the
client was instantiated.
<p>
The easiest way to authenticate using a keytab is by creating a JAAS config
file such as this: <pre>
ExampleLoginContextName {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab = true
keyTab = "/path/to/app.keytab"
principal = "appuser";
};
</pre>
This can then be passed to the application by adding <code>-Djava.security.auth.login.config=/path/to/jaas.conf</code> to the command when
starting it.
This authentication method needs to be set in the code as well by wrapping
the code interacting with Kudu with a <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true#doAs-javax.security.auth.Subject-java.security.PrivilegedAction-" title="class or interface in javax.security.auth"><code>Subject.doAs(javax.security.auth.Subject, java.security.PrivilegedAction&lt;T&gt;)</code></a> after creating a login context using the
JAAS config, logging in, and passing the <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a>
to the <i>doAs</i>:
<pre>
LoginContext login = new LoginContext("ExampleLoginContextName");
login.login();
KuduClient c = Subject.doAs(login.getSubject(),
(PrivilegedAction&lt;KuduClient&gt;) () -> {
return myClientBuilder.build();
});
</pre>
In this case it's necessary to periodically re-login as needed and run doAs
using the new subject.
<p>
In the context of the Hadoop ecosystem, the <code>org.apache.hadoop.security.UserGroupInformation</code> class provides utility
methods to login from a keytab and then run code as the resulting <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a>: <pre>
UserGroupInformation.loginUserFromKeytab("appuser", "/path/to/app.keytab");
KuduClient c = UserGroupInformation.getLoginUser().doAs(
new PrivilegedExceptionAction<KuduClient>() {
&#64;Override
public KuduClient run() throws Exception {
return myClientBuilder.build();
}
}
);
</pre> The <code>UserGroupInformation</code> class will also automatically
start a thread to periodically re-login from the keytab. It's not necessary
to pass a JAAS config.
<h3>Debugging Kudu's usage of Kerberos credentials</h3>
The Kudu client emits DEBUG-level logs under the
<code>org.apache.kudu.client.SecurityContext</code> slf4j category. Enabling DEBUG
logging for this class may help you understand which credentials are being
obtained by the Kudu client when it is instantiated. Additionally, if the
Java system property <code>kudu.jaas.debug</code> is set to <code>true</code>, Kudu
will enable the <code>debug</code> option when configuring <code>Krb5LoginModule</code>
when it attempts to log in from a ticket cache. JDK-specific system properties
such as <code>sun.security.krb5.debug</code> may also be useful in troubleshooting
Kerberos authentication failures.
<h2>Authenticating using tokens</h2>
In the case of distributed applications, the worker tasks often do not have
access to Kerberos credentials such as ticket caches or keytabs.
Additionally, there may be hundreds or thousands of workers with relatively
short life-times, and if each task attempted to authenticate using Kerberos,
the amount of load on the Kerberos infrastructure could be substantial enough
to cause instability. To solve this issue, Kudu provides support for
<em>authentication tokens</em>.
<p>
An authentication token is a time-limited credential which can be obtained by
an application which has already authenticated via Kerberos. The token is
represented by an opaque byte string, and it can be passed from one client to
another to transfer credentials.
<p>
A token may be generated using the
<a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#exportAuthenticationCredentials--"><code>exportAuthenticationCredentials()</code></a> API, and then
imported to another client using
<a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#importAuthenticationCredentials-byte:A-"><code>importAuthenticationCredentials(byte[])</code></a>.
<h2>Authentication in Spark jobs</h2>
Note that the Spark integration provided by the <em>kudu-spark</em> package
automatically handles the interaction with Kerberos and the passing of tokens
from the Spark driver to tasks. Refer to the Kudu documentation for details
on how to submit a Spark job on a secure cluster.
<h1>API Compatibility</h1>
Note that some methods in the Kudu client implementation are public but
annotated with the InterfaceAudience.Private annotation. This
annotation indicates that, despite having <code>public</code> visibility, the
method is not part of the public API and there is no guarantee that its
existence or behavior will be maintained in subsequent versions of the Kudu
client library.
Other APIs are annotated with the InterfaceStability.Unstable annotation.
These APIs are meant for public consumption but may change between minor releases.
Note that the asynchronous client is currently considered unstable.
<h1>Thread Safety</h1>
The Kudu client instance itself is thread-safe; however, not all associated
classes are themselves thread-safe. For example, neither
<a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client"><code>AsyncKuduSession</code></a> nor its synchronous wrapper <a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client"><code>KuduSession</code></a> is
thread-safe. Refer to the documentation for each individual class for more
details.
<h1>Asynchronous usage</h1>
This client is fully non-blocking, any blocking operation will return a
<code>Deferred</code> instance to which you can attach a <code>Callback</code> chain
that will execute when the asynchronous operation completes.
<p>
The asynchronous calls themselves typically do not throw exceptions. Instead,
an <code>errback</code> should be attached which will be called with the Exception
that occurred.</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>
<table class="memberSummary" 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 class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html" title="class in org.apache.kudu.client">AsyncKuduClient.AsyncKuduClientBuilder</a></span></code>
<div class="block">Builder class to use in order to connect to Kudu.</div>
</td>
</tr>
</table>
</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 long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#DEFAULT_KEEP_ALIVE_PERIOD_MS">DEFAULT_KEEP_ALIVE_PERIOD_MS</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#DEFAULT_OPERATION_TIMEOUT_MS">DEFAULT_OPERATION_TIMEOUT_MS</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#EMPTY_ARRAY">EMPTY_ARRAY</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#INVALID_TXN_ID">INVALID_TXN_ID</a></span></code>&nbsp;</td>
</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/AsyncKuduClient.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#NO_TIMESTAMP">NO_TIMESTAMP</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#SLEEP_TIME">SLEEP_TIME</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><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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/AlterTableResponse.html" title="class in org.apache.kudu.client">AlterTableResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#alterTable-java.lang.String-org.apache.kudu.client.AlterTableOptions-">alterTable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="../../../../org/apache/kudu/client/AlterTableOptions.html" title="class in org.apache.kudu.client">AlterTableOptions</a>&nbsp;ato)</code>
<div class="block">Alter a table on the cluster as specified by the builder.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#close--">close</a></span>()</code>
<div class="block">Invokes <a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#shutdown--"><code>shutdown()</code></a> and waits.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#createTable-java.lang.String-org.apache.kudu.Schema-org.apache.kudu.client.CreateTableOptions-">createTable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="../../../../org/apache/kudu/Schema.html" title="class in org.apache.kudu">Schema</a>&nbsp;schema,
<a href="../../../../org/apache/kudu/client/CreateTableOptions.html" title="class in org.apache.kudu.client">CreateTableOptions</a>&nbsp;builder)</code>
<div class="block">Create a table on the cluster with the specified name, schema, and table configurations.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client">DeleteTableResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#deleteTable-java.lang.String-">deleteTable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Delete a table on the cluster with the specified name.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;byte[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#exportAuthenticationCredentials--">exportAuthenticationCredentials</a></span>()</code>
<div class="block">Export serialized authentication data that may be passed to a different
client instance and imported to provide that client the ability to connect
to the cluster.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getClusterId--">getClusterId</a></span>()</code>
<div class="block">Returns the ID of the cluster that this client is connected to.</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/AsyncKuduClient.html#getDefaultAdminOperationTimeoutMs--">getDefaultAdminOperationTimeoutMs</a></span>()</code>
<div class="block">Get the timeout used for admin operations.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getDefaultOperationTimeoutMs--">getDefaultOperationTimeoutMs</a></span>()</code>
<div class="block">Get the timeout used for operations on sessions and scanners.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getDefaultSocketReadTimeoutMs--">getDefaultSocketReadTimeoutMs</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">socket read timeouts are no longer used</span></div>
</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getLastPropagatedTimestamp--">getLastPropagatedTimestamp</a></span>()</code>
<div class="block">Returns the last timestamp received from a server.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getLocationString--">getLocationString</a></span>()</code>
<div class="block">Returns a string representation of this client's location.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getMasterAddressesAsString--">getMasterAddressesAsString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/Statistics.html" title="class in org.apache.kudu.client">Statistics</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getStatistics--">getStatistics</a></span>()</code>
<div class="block">Get the statistics object of this client.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getTablesList--">getTablesList</a></span>()</code>
<div class="block">Get the list of all the tables.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getTablesList-java.lang.String-">getTablesList</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;nameFilter)</code>
<div class="block">Get a list of table names.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client">KuduTableStatistics</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getTableStatistics-java.lang.String-">getTableStatistics</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Get table's statistics from master.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#hasLastPropagatedTimestamp--">hasLastPropagatedTimestamp</a></span>()</code>
<div class="block">Checks if the client received any timestamps from a server.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#importAuthenticationCredentials-byte:A-">importAuthenticationCredentials</a></span>(byte[]&nbsp;authnData)</code>
<div class="block">Import data allowing this client to authenticate to the cluster.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/IsAlterTableDoneResponse.html" title="class in org.apache.kudu.client">IsAlterTableDoneResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#isAlterTableDone-java.lang.String-">isAlterTableDone</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Check whether a previously issued alterTable() is done.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/IsCreateTableDoneResponse.html" title="class in org.apache.kudu.client">IsCreateTableDoneResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#isCreateTableDone-java.lang.String-">isCreateTableDone</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Check whether a previously issued createTable() is done.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#isStatisticsEnabled--">isStatisticsEnabled</a></span>()</code>
<div class="block">Check if statistics collection is enabled for this client.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client">ListTabletServersResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#listTabletServers--">listTabletServers</a></span>()</code>
<div class="block">Get the list of running tablet servers.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/AsyncKuduScanner.AsyncKuduScannerBuilder.html" title="class in org.apache.kudu.client">AsyncKuduScanner.AsyncKuduScannerBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#newScannerBuilder-org.apache.kudu.client.KuduTable-">newScannerBuilder</a></span>(<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&nbsp;table)</code>
<div class="block">Creates a new <a href="../../../../org/apache/kudu/client/AsyncKuduScanner.AsyncKuduScannerBuilder.html" title="class in org.apache.kudu.client"><code>AsyncKuduScanner.AsyncKuduScannerBuilder</code></a> for a particular table.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client">AsyncKuduSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#newSession--">newSession</a></span>()</code>
<div class="block">Create a new session for interacting with the cluster.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#openTable-java.lang.String-">openTable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Open the table with the given name.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#shutdown--">shutdown</a></span>()</code>
<div class="block">Performs a graceful shutdown of this instance.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#syncClient--">syncClient</a></span>()</code>
<div class="block">Returns a synchronous <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a> which wraps this asynchronous client.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#tableExists-java.lang.String-">tableExists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Test if a table exists.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#updateLastPropagatedTimestamp-long-">updateLastPropagatedTimestamp</a></span>(long&nbsp;lastPropagatedTimestamp)</code>
<div class="block">Updates the last timestamp received from a server.</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/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="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>public static final&nbsp;org.slf4j.Logger LOG</pre>
</li>
</ul>
<a name="SLEEP_TIME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SLEEP_TIME</h4>
<pre>public static final&nbsp;int SLEEP_TIME</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.kudu.client.AsyncKuduClient.SLEEP_TIME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EMPTY_ARRAY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EMPTY_ARRAY</h4>
<pre>public static final&nbsp;byte[] EMPTY_ARRAY</pre>
</li>
</ul>
<a name="NO_TIMESTAMP">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NO_TIMESTAMP</h4>
<pre>public static final&nbsp;long NO_TIMESTAMP</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.kudu.client.AsyncKuduClient.NO_TIMESTAMP">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INVALID_TXN_ID">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INVALID_TXN_ID</h4>
<pre>public static final&nbsp;long INVALID_TXN_ID</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.kudu.client.AsyncKuduClient.INVALID_TXN_ID">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_OPERATION_TIMEOUT_MS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_OPERATION_TIMEOUT_MS</h4>
<pre>public static final&nbsp;long DEFAULT_OPERATION_TIMEOUT_MS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.kudu.client.AsyncKuduClient.DEFAULT_OPERATION_TIMEOUT_MS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_KEEP_ALIVE_PERIOD_MS">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT_KEEP_ALIVE_PERIOD_MS</h4>
<pre>public static final&nbsp;long DEFAULT_KEEP_ALIVE_PERIOD_MS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.kudu.client.AsyncKuduClient.DEFAULT_KEEP_ALIVE_PERIOD_MS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="updateLastPropagatedTimestamp-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateLastPropagatedTimestamp</h4>
<pre>public&nbsp;void&nbsp;updateLastPropagatedTimestamp(long&nbsp;lastPropagatedTimestamp)</pre>
<div class="block">Updates the last timestamp received from a server. Used for CLIENT_PROPAGATED
external consistency.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lastPropagatedTimestamp</code> - the last timestamp received from a server</dd>
</dl>
</li>
</ul>
<a name="getLastPropagatedTimestamp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLastPropagatedTimestamp</h4>
<pre>public&nbsp;long&nbsp;getLastPropagatedTimestamp()</pre>
<div class="block">Returns the last timestamp received from a server. Used for CLIENT_PROPAGATED
external consistency. Note that the returned timestamp is encoded and cannot be
interpreted as a raw timestamp.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a long indicating the specially-encoded last timestamp received from a server</dd>
</dl>
</li>
</ul>
<a name="hasLastPropagatedTimestamp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasLastPropagatedTimestamp</h4>
<pre>public&nbsp;boolean&nbsp;hasLastPropagatedTimestamp()</pre>
<div class="block">Checks if the client received any timestamps from a server. Used for
CLIENT_PROPAGATED external consistency.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if last propagated timestamp has been set</dd>
</dl>
</li>
</ul>
<a name="getLocationString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocationString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getLocationString()</pre>
<div class="block">Returns a string representation of this client's location. If this
client was not assigned a location, returns the empty string.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string representation of this client's location</dd>
</dl>
</li>
</ul>
<a name="getClusterId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClusterId</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getClusterId()</pre>
<div class="block">Returns the ID of the cluster that this client is connected to.
It will be an empty string if the client is not connected or
the client is connected to a cluster that doesn't support
cluster IDs.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the ID of the cluster that this client is connected to</dd>
</dl>
</li>
</ul>
<a name="syncClient--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>syncClient</h4>
<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;syncClient()</pre>
<div class="block">Returns a synchronous <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a> which wraps this asynchronous client.
Calling <a href="../../../../org/apache/kudu/client/KuduClient.html#close--"><code>KuduClient.close()</code></a> on the returned client will close this client.
If this asynchronous client should outlive the returned synchronous client,
then do not close the synchronous client.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new synchronous <code>KuduClient</code></dd>
</dl>
</li>
</ul>
<a name="createTable-java.lang.String-org.apache.kudu.Schema-org.apache.kudu.client.CreateTableOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTable</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&gt;&nbsp;createTable(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="../../../../org/apache/kudu/Schema.html" title="class in org.apache.kudu">Schema</a>&nbsp;schema,
<a href="../../../../org/apache/kudu/client/CreateTableOptions.html" title="class in org.apache.kudu.client">CreateTableOptions</a>&nbsp;builder)</pre>
<div class="block">Create a table on the cluster with the specified name, schema, and table configurations.
If the primary key columns of the table schema aren't specified first, the deferred result
will be a <code>NonRecoverableException</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the table's name</dd>
<dd><code>schema</code> - the table's schema</dd>
<dd><code>builder</code> - a builder containing the table's configurations</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred object to track the progress of the createTable command that gives
an object to communicate with the created table</dd>
</dl>
</li>
</ul>
<a name="isCreateTableDone-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCreateTableDone</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/IsCreateTableDoneResponse.html" title="class in org.apache.kudu.client">IsCreateTableDoneResponse</a>&gt;&nbsp;isCreateTableDone(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Check whether a previously issued createTable() is done.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - table's name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred object to track the progress of the isCreateTableDone command</dd>
</dl>
</li>
</ul>
<a name="deleteTable-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteTable</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client">DeleteTableResponse</a>&gt;&nbsp;deleteTable(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Delete a table on the cluster with the specified name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the table's name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred object to track the progress of the deleteTable command</dd>
</dl>
</li>
</ul>
<a name="alterTable-java.lang.String-org.apache.kudu.client.AlterTableOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alterTable</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/AlterTableResponse.html" title="class in org.apache.kudu.client">AlterTableResponse</a>&gt;&nbsp;alterTable(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="../../../../org/apache/kudu/client/AlterTableOptions.html" title="class in org.apache.kudu.client">AlterTableOptions</a>&nbsp;ato)</pre>
<div class="block">Alter a table on the cluster as specified by the builder.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the table's name (old name if the table is being renamed)</dd>
<dd><code>ato</code> - the alter table options</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred object to track the progress of the alter command</dd>
</dl>
</li>
</ul>
<a name="isAlterTableDone-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAlterTableDone</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/IsAlterTableDoneResponse.html" title="class in org.apache.kudu.client">IsAlterTableDoneResponse</a>&gt;&nbsp;isAlterTableDone(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Check whether a previously issued alterTable() is done.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - table name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred object to track the progress of the isAlterTableDone command</dd>
</dl>
</li>
</ul>
<a name="listTabletServers--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listTabletServers</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client">ListTabletServersResponse</a>&gt;&nbsp;listTabletServers()</pre>
<div class="block">Get the list of running tablet servers.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred object that yields a list of tablet servers</dd>
</dl>
</li>
</ul>
<a name="getTablesList--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTablesList</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a>&gt;&nbsp;getTablesList()</pre>
<div class="block">Get the list of all the tables.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred object that yields a list of all the tables</dd>
</dl>
</li>
</ul>
<a name="getTablesList-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTablesList</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a>&gt;&nbsp;getTablesList(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;nameFilter)</pre>
<div class="block">Get a list of table names. Passing a null filter returns all the tables. When a filter is
specified, it only returns tables that satisfy a substring match.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nameFilter</code> - an optional table name filter</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred that yields the list of table names</dd>
</dl>
</li>
</ul>
<a name="getTableStatistics-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableStatistics</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client">KuduTableStatistics</a>&gt;&nbsp;getTableStatistics(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Get table's statistics from master.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the table's name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an deferred KuduTableStatistics</dd>
</dl>
</li>
</ul>
<a name="tableExists-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableExists</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;tableExists(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Test if a table exists.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - a non-null table name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the table exists, else false</dd>
</dl>
</li>
</ul>
<a name="openTable-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>openTable</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&gt;&nbsp;openTable(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Open the table with the given name.
New range partitions created by other clients will immediately be available
after opening the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - table to open</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deferred KuduTable</dd>
</dl>
</li>
</ul>
<a name="exportAuthenticationCredentials--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exportAuthenticationCredentials</h4>
<pre>@InterfaceStability.Unstable
public&nbsp;com.stumbleupon.async.Deferred&lt;byte[]&gt;&nbsp;exportAuthenticationCredentials()</pre>
<div class="block">Export serialized authentication data that may be passed to a different
client instance and imported to provide that client the ability to connect
to the cluster.</div>
</li>
</ul>
<a name="importAuthenticationCredentials-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>importAuthenticationCredentials</h4>
<pre>@InterfaceStability.Unstable
public&nbsp;void&nbsp;importAuthenticationCredentials(byte[]&nbsp;authnData)</pre>
<div class="block">Import data allowing this client to authenticate to the cluster.
This will typically be used before making any connections to servers
in the cluster.
Note that, if this client has already been used by one user, this
method cannot be used to switch authenticated users. Attempts to
do so have undefined results, and may throw an exception.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authnData</code> - then authentication data provided by a prior call to
<a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#exportAuthenticationCredentials--"><code>exportAuthenticationCredentials()</code></a></dd>
</dl>
</li>
</ul>
<a name="getDefaultOperationTimeoutMs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultOperationTimeoutMs</h4>
<pre>public&nbsp;long&nbsp;getDefaultOperationTimeoutMs()</pre>
<div class="block">Get the timeout used for operations on sessions and scanners.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a timeout in milliseconds</dd>
</dl>
</li>
</ul>
<a name="getDefaultAdminOperationTimeoutMs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultAdminOperationTimeoutMs</h4>
<pre>public&nbsp;long&nbsp;getDefaultAdminOperationTimeoutMs()</pre>
<div class="block">Get the timeout used for admin operations.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a timeout in milliseconds</dd>
</dl>
</li>
</ul>
<a name="getDefaultSocketReadTimeoutMs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultSocketReadTimeoutMs</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public&nbsp;long&nbsp;getDefaultSocketReadTimeoutMs()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">socket read timeouts are no longer used</span></div>
<div class="block">Socket read timeouts are no longer used in the Java client and have no effect.
This method always returns 0, as that previously indicated no socket read timeout.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a timeout in milliseconds</dd>
</dl>
</li>
</ul>
<a name="getMasterAddressesAsString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMasterAddressesAsString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getMasterAddressesAsString()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of master addresses, stringified using commas to separate
them</dd>
</dl>
</li>
</ul>
<a name="isStatisticsEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStatisticsEnabled</h4>
<pre>public&nbsp;boolean&nbsp;isStatisticsEnabled()</pre>
<div class="block">Check if statistics collection is enabled for this client.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if it is enabled, else false</dd>
</dl>
</li>
</ul>
<a name="getStatistics--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStatistics</h4>
<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/Statistics.html" title="class in org.apache.kudu.client">Statistics</a>&nbsp;getStatistics()</pre>
<div class="block">Get the statistics object of this client.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this client's Statistics object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - thrown if statistics collection has been disabled</dd>
</dl>
</li>
</ul>
<a name="newScannerBuilder-org.apache.kudu.client.KuduTable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newScannerBuilder</h4>
<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/AsyncKuduScanner.AsyncKuduScannerBuilder.html" title="class in org.apache.kudu.client">AsyncKuduScanner.AsyncKuduScannerBuilder</a>&nbsp;newScannerBuilder(<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&nbsp;table)</pre>
<div class="block">Creates a new <a href="../../../../org/apache/kudu/client/AsyncKuduScanner.AsyncKuduScannerBuilder.html" title="class in org.apache.kudu.client"><code>AsyncKuduScanner.AsyncKuduScannerBuilder</code></a> for a particular table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - the name of the table you intend to scan.
The string is assumed to use the platform's default charset.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new scanner builder for this table</dd>
</dl>
</li>
</ul>
<a name="newSession--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newSession</h4>
<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client">AsyncKuduSession</a>&nbsp;newSession()</pre>
<div class="block">Create a new session for interacting with the cluster.
User is responsible for destroying the session object.
This is a fully local operation (no RPCs or blocking).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new AsyncKuduSession</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Invokes <a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#shutdown--"><code>shutdown()</code></a> and waits. This method returns void, so consider invoking
<a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#shutdown--"><code>shutdown()</code></a> directly if there's a need to handle dangling RPCs.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if an error happens while closing the connections</dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>shutdown</h4>
<pre>public&nbsp;com.stumbleupon.async.Deferred&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&gt;&nbsp;shutdown()</pre>
<div class="block">Performs a graceful shutdown of this instance.
<p>
<ul>
<li><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html#flush--"><code>Flushes</code></a> all buffered edits.</li>
<li>Cancels all the other requests.</li>
<li>Terminates all connections.</li>
<li>Releases all other resources.</li>
</ul>
<strong>Not calling this method before losing the last reference to this
instance may result in data loss and other unwanted side effects.</strong></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <code>Deferred</code>, whose callback chain will be invoked once all
of the above have been done. If this callback chain doesn't fail, then
the clean shutdown will be successful, and all the data will be safe on
the Kudu side. In case of a failure (the "errback" is invoked) you will have
to open a new AsyncKuduClient if you want to retry those operations.
The Deferred doesn't actually hold any content.</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="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/AlterTableResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.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/AsyncKuduClient.html" target="_top">Frames</a></li>
<li><a href="AsyncKuduClient.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><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.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>