<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="A new open source Apache Hadoop ecosystem project, Apache Kudu completes Hadoop's storage layer to enable fast analytics on fast data" />
    <meta name="author" content="Cloudera" />
    <title>Apache Kudu - Apache Kudu Prior Version Release Notes</title>
    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
          integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
          crossorigin="anonymous">

    <!-- Custom styles for this template -->
    <link href="/css/kudu.css" rel="stylesheet"/>
    <link href="/css/asciidoc.css" rel="stylesheet"/>
    <link rel="shortcut icon" href="/img/logo-favicon.ico" />
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" />

    

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
  </head>
  <body>
    <div class="kudu-site container-fluid">
      <!-- Static navbar -->
        <nav class="navbar navbar-default">
          <div class="container-fluid">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="logo" href="/"><img
                src="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png"
                srcset="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png 1x, //d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_160px.png 2x"
                alt="Apache Kudu"/></a>
              
            </div>
            <div id="navbar" class="collapse navbar-collapse">
              <ul class="nav navbar-nav navbar-right">
                <li >
                  <a href="/">Home</a>
                </li>
                <li >
                  <a href="/overview.html">Overview</a>
                </li>
                <li class="active">
                  <a href="/docs/">Documentation</a>
                </li>
                <li >
                  <a href="/releases/">Releases</a>
                </li>
                <li >
                  <a href="/blog/">Blog</a>
                </li>
                <!-- NOTE: this dropdown menu does not appear on Mobile, so don't add anything here
                     that doesn't also appear elsewhere on the site. -->
                <li class="dropdown">
                  <a href="/community.html" role="button" aria-haspopup="true" aria-expanded="false">Community <span class="caret"></span></a>
                  <ul class="dropdown-menu">
                    <li class="dropdown-header">GET IN TOUCH</li>
                    <li><a class="icon email" href="/community.html">Mailing Lists</a></li>
                    <li><a class="icon slack" href="https://getkudu-slack.herokuapp.com/">Slack Channel</a></li>
                    <li role="separator" class="divider"></li>
                    <li><a href="/community.html#meetups-user-groups-and-conference-presentations">Events and Meetups</a></li>
                    <li><a href="/committers.html">Project Committers</a></li>
                    <li><a href="/ecosystem.html">Ecosystem</a></li>
                    <!--<li><a href="/roadmap.html">Roadmap</a></li>-->
                    <li><a href="/community.html#contributions">How to Contribute</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">DEVELOPER RESOURCES</li>
                    <li><a class="icon github" href="https://github.com/apache/incubator-kudu">GitHub</a></li>
                    <li><a class="icon gerrit" href="http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu">Gerrit Code Review</a></li>
                    <li><a class="icon jira" href="https://issues.apache.org/jira/browse/KUDU">JIRA Issue Tracker</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">SOCIAL MEDIA</li>
                    <li><a class="icon twitter" href="https://twitter.com/ApacheKudu">Twitter</a></li>
                    <li><a href="https://www.reddit.com/r/kudu/">Reddit</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">APACHE SOFTWARE FOUNDATION</li>
                    <li><a href="https://www.apache.org/security/" target="_blank">Security</a></li>
                    <li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
                    <li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                    <li><a href="https://www.apache.org/licenses/" target="_blank">License</a></li>
                  </ul>
                </li>
                <li >
                  <a href="/faq.html">FAQ</a>
                </li>
              </ul><!-- /.nav -->
            </div><!-- /#navbar -->
          </div><!-- /.container-fluid -->
        </nav>

<!--

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->


<div class="container">
  <div class="row">
    <div class="col-md-9">

<h1>Apache Kudu Prior Version Release Notes</h1>
      <div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>This section reproduces the release notes for new features and incompatible
changes in prior releases of Apache Kudu.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The list of known issues and limitations for prior releases are not
reproduced on this page. Please consult the
<a href="http://kudu.apache.org/releases/">documentation of the appropriate release</a>
for a list of known issues and limitations.
</td>
</tr>
</table>
</div>
</div>
</div>
<h1 id="rn_1.15.0" class="sect0"><a class="link" href="#rn_1.15.0">Apache Kudu 1.15.0 Release Notes</a></h1>
<div class="sect1">
<h2 id="rn_1.15.0_upgrade_notes"><a class="link" href="#rn_1.15.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_obsoletions"><a class="link" href="#rn_1.15.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The <code>kudu-mapreduce</code> integration has been removed in the 1.15.0 release.
Similar functionality and capabilities now exist via the Apache Spark, Apache Hive, Apache Impala,
and Apache NiFi integrations. See <a href="https://issues.apache.org/jira/browse/KUDU-3142">KUDU-3142</a>
for details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_deprecations"><a class="link" href="#rn_1.15.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Python 2.x and Python 3.4 and earlier is deprecated and may be removed in the next minor
release.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_new_features"><a class="link" href="#rn_1.15.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu now experimentally supports multi-row transactions. Currently only <code>INSERT</code> and
<code>INSERT_IGNORE</code> operations are supported.
See <a href="https://github.com/apache/kudu/blob/master/docs/design-docs/transactions.adoc">here</a> for a
design overview of this feature.</p>
</li>
<li>
<p>Kudu now supports Raft configuration change for Kudu masters and CLI tools for orchestrating
addition and removal of masters in a Kudu cluster. These tools substantially simplify the process
of migrating to multiple masters, recovering a dead master and removing masters from a Kudu cluster.
For detailed steps, see the latest administration documentation. This feature is evolving and
the steps to add, remove and recover masters may change in the future.
See <a href="https://issues.apache.org/jira/browse/KUDU-2181">KUDU-2181</a> for details.</p>
</li>
<li>
<p>Kudu now supports table comments directly on Kudu tables which are automatically synchronized
when the Hive Metastore integration is enabled. These comments can be added at table creation time
and changed via table alteration.</p>
</li>
<li>
<p>Kudu now experimentally supports per-table size limits based on leader disk space usage or number
of rows. When generating new authorization tokens, Masters will now consider the size limits and
strip tokens of <code>INSERT</code> and <code>UPDATE</code> privileges if either limit is reached. To enable this feature,
set the <code>--enable_table_write_limit</code> master flag; adjust the <code>--table_disk_size_limit</code> and
<code>--table_row_count_limit</code> flags as desired or use the <code>kudu table set_limit</code> tool to set limits per
table.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_improvements"><a class="link" href="#rn_1.15.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>It is now possible to change the Kerberos Service Principal Name using the <code>--principal</code> flag. The
default SPN is still <code>kudu/_HOST</code>. Clients connecting to a cluster using a non-default SPN must set
the <code>sasl_protocol_name</code> or <code>saslProtocolName</code> to match the SPN base
(i.e. “kudu” if the SPN is “kudu/_HOST”) in the client builder or the Kudu CLI.
See <a href="https://issues.apache.org/jira/browse/KUDU-1884">KUDU-1884</a> for details.</p>
</li>
<li>
<p>Kudu RPC now supports TLSv1.3.  Kudu servers and clients automatically negotiate TLSv1.3 for Kudu
RPC if OpenSSL (or Java runtime correspondingly) on each side supports TLSv1.3.
If necessary, use the newly introduced flag <code>--rpc_tls_ciphersuites</code> to customize TLSv1.3-specific
cipher suites at the server side.
See <a href="https://issues.apache.org/jira/browse/KUDU-2871">KUDU-2871</a> for details.</p>
</li>
<li>
<p>TLS ciphers renegotiation for TLSv1.2 and prior protocol versions is now explicitly disabled.
See <a href="https://issues.apache.org/jira/browse/KUDU-1926">KUDU-1926</a> for details.</p>
</li>
<li>
<p>The location assignment for Kudu clients is now disabled by default since it doesn’t bring a lot
of benefits, but rather puts an extra load to Kudu masters.  This change reduces the load on Kudu
masters which is essential if too many clients run in a cluster.  To enable the location assignment
for clients, override the default by setting <code>--master_client_location_assignment_enabled=true</code> for
Kudu masters.</p>
</li>
<li>
<p>The behavior of the C++ client replica selection for closest replica, the default, was updated to
match the behavior of the Java client. Instead of picking a random replica each time, a static value
is used for each process ensuring that the selection remains deterministic and can benefit from
better caching. See <a href="https://issues.apache.org/jira/browse/KUDU-3248">KUDU-3248</a> for details.</p>
</li>
<li>
<p>The Web UI /rpcz endpoint now displays information on whether an RPC connection is protected by
TLS, and if so, provides information on the negotiated TLS cipher suite.</p>
</li>
<li>
<p>Tooling requests and C++ client requests bound for leader masters will now be retried in the event
the masters cannot be reached.</p>
</li>
<li>
<p>Cluster tooling will now validate that the master argument contains no duplicate values.
See <a href="https://issues.apache.org/jira/browse/KUDU-3226">KUDU-3226</a> for details.</p>
</li>
<li>
<p>The error message output by Kudu Java client in an attempt to write into a non-existent table
partition now contains the table’s name.
See <a href="https://issues.apache.org/jira/browse/KUDU-3267">KUDU-3267</a> for details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_fixed_issues"><a class="link" href="#rn_1.15.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed a bug in the Kudu tablet servers that could result in a crash when performing an incremental
backup of rows that had many batches of updates.
See <a href="https://issues.apache.org/jira/browse/KUDU-3291">KUDU-3291</a> for more details.</p>
</li>
<li>
<p>The Kudu Java client will now retry scans bound for tablets hosted on quiescing tablet servers at
replicas on other tablet servers. See
<a href="https://issues.apache.org/jira/browse/KUDU-3213">KUDU-3213</a> for more details.</p>
</li>
<li>
<p>Fixed a race between the scheduling of a maintenance op and the destruction of a tablet. This
could previously lead to a crash.
See <a href="https://issues.apache.org/jira/browse/KUDU-3268">KUDU-3268</a> for more details.</p>
</li>
<li>
<p>Fixed crash in Kudu C++ client introduced with KUDU-1802.
See <a href="https://issues.apache.org/jira/browse/KUDU-3254">KUDU-3254</a> for details.</p>
</li>
<li>
<p>Fixed bug in Kudu Java client which manifested in <code>AUTO_FLUSH_BACKGROUND</code> sessions hung in a call
to <code>KuduSession.flush()</code> method.  Another sign of the bug were stuck data ingest workloads based on
Java client (e.g., kudu-spark applications) with
"java.lang.AssertionError: This Deferred was already called!" message in the logs.
See <a href="https://issues.apache.org/jira/browse/KUDU-3277">KUDU-3277</a> for details.</p>
</li>
<li>
<p>Fixed crash in Kudu server due to lack of <code>getrandom(2)</code> system call in Linux kernel version
earlier than 3.17 by instead using <code>/dev/random</code> for uuid generation in the Boost library.
Crash includes the following message in the logs
"terminate called after throwing an instance of 'boost::wrapexcept&lt;boost::uuids::entropy_error&gt;'".
See the <a href="https://gerrit.cloudera.org/c/17354/">fix</a> for a sample stack trace.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_wire_compatibility"><a class="link" href="#rn_1.15.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.15.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.15 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.14 and Kudu 1.15 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.15 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.15 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.15 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.15 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_incompatible_changes"><a class="link" href="#rn_1.15.0_incompatible_changes">Incompatible Changes in Kudu 1.15.0</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Updated hash computation for empty strings in the FastHash implementation to conform with the
handling in Apache Impala. For Bloom filter predicate pushdown feature that uses FastHash,
this makes the Kudu client older than version 1.15.0 incompatible with Kudu server version 1.15.0
and Kudu client version at or newer than 1.15.0 incompatible with Kudu server version earlier than
1.15.0. Both client library and Kudu server need to be updated to version 1.15.0 or above if using
the Bloom filter predicate feature. One manifestation of this incompatibility is following message
in the logs, "Not implemented: call requires unsupported application feature flags: 4".
See <a href="https://issues.apache.org/jira/browse/KUDU-3286">KUDU-3286</a> for details.</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="rn_1.15.0_client_compatibility"><a class="link" href="#rn_1.15.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.15 Java client library is API- and ABI-compatible with Kudu 1.14. Applications
written against Kudu 1.14 will compile and run against the Kudu 1.15 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.15 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.14.
Applications written and compiled against the Kudu 1.14 client library will run without
modification against the Kudu 1.15 client library. Applications written and compiled
against the Kudu 1.15 client library will run without modification against the Kudu 1.14
client library.</p>
</li>
<li>
<p>The Kudu 1.15 Python client is API-compatible with Kudu 1.14. Applications
written against Kudu 1.14 will continue to run against the Kudu 1.15 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_known_issues"><a class="link" href="#rn_1.15.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.15.0_contributors"><a class="link" href="#rn_1.15.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.15.0 includes contributions from 12 people, including 2 first-time contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Abhishek Chennaka</p>
</li>
<li>
<p>shenxingwuying</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for your contributions!</p>
</div>
</div>
</div>
<h1 id="rn_1.14.0" class="sect0"><a class="link" href="#rn_1.14.0">Apache Kudu 1.14.0 Release Notes</a></h1>
<div class="sect1">
<h2 id="rn_1.14.0_upgrade_notes"><a class="link" href="#rn_1.14.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_obsoletions"><a class="link" href="#rn_1.14.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for CentOS 6/RHEL 6, Ubuntu 14, Ubuntu 16, and Debian 8 platforms has been dropped
given they are at or near end-of-life. We will no longer validate these platforms as a
part of the release process, though patches will still be accepted going forward.</p>
</li>
<li>
<p>Developer support for OS X 10.10 Yosemite, OS X 10.11 El Capitan, and OS X 10.12 Sierra
has been dropped. We will no longer validate these versions as a part of the release
process, though patches will still be accepted going forward.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_deprecations"><a class="link" href="#rn_1.14.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Python 2.x and Python 3.4 and earlier is deprecated and may be
removed in the next minor release.</p>
</li>
<li>
<p>The <code>kudu-mapreduce</code> integration has been deprecated and may be removed in the
next minor release. Similar functionality and capabilities now exist via the
Apache Spark, Apache Hive, Apache Impala, and Apache NiFi integrations.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_new_features"><a class="link" href="#rn_1.14.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Full support for <code>INSERT_IGNORE</code>, <code>UPDATE_IGNORE</code>, and <code>DELETE_IGNORE</code> operations
was added. The <code>INSERT_IGNORE</code> operation will insert a row if one matching the key
does not exist and ignore the operation if one already exists. The <code>UPDATE_IGNORE</code>
operation will update the row if one matching the key exists and ignore the operation
if one does not exist. The <code>DELETE_IGNORE</code> operation will delete the row if one matching
the key exists and ignore the operation if one does not exist. These operations are
particularly useful in situations where retries or duplicate operations could occur and
you do not want to handle the errors that could result manually or you do not want to cause
unnecessary writes and compaction work as a result of using the <code>UPSERT</code> operation.
The Java client can check if the cluster it is communicating with supports these operations
by calling the <code>supportsIgnoreOperations()</code> method on the KuduClient. See
<a href="https://issues.apache.org/jira/browse/KUDU-1563">KUDU-1563</a> for more details.</p>
</li>
<li>
<p>Spark 3 compatible JARs compiled for Scala 2.12 are now published for the Kudu Spark integration.
See <a href="https://issues.apache.org/jira/browse/KUDU-3202">KUDU-3202</a> for more details.</p>
</li>
<li>
<p>Every Kudu cluster now has an automatically generated cluster Id that can be used to uniquely
identify a cluster. The cluster Id is shown in the masters web-UI, the <code>kudu master list</code> tool,
and in master server logs. See <a href="https://issues.apache.org/jira/browse/KUDU-2574">KUDU-2574</a>
for more details.</p>
</li>
<li>
<p>It is now possible to enforce that OpenSSL is initialized in FIPS approved mode in the servers
and the C++ client by setting the KUDU_REQUIRE_FIPS_MODE environment variable to “1”, “yes” or
“true”. See <a href="https://issues.apache.org/jira/browse/KUDU-3210">KUDU-3210</a> for more details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_improvements"><a class="link" href="#rn_1.14.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Downloading the WAL data and data blocks when copying tablets to another tablet server is now
parallelized, resulting in much faster tablet copy operations. These operations occur when
recovering from a down tablet server or when running the cluster rebalancer. See
<a href="https://issues.apache.org/jira/browse/KUDU-1728">KUDU-1728</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-3214">KUDU-3214</a> for more details.</p>
</li>
<li>
<p>The HMS integration now supports multiple Kudu clusters associated with a single HMS
including Kudu clusters that do not have HMS synchronization enabled. This is possible,
because the Kudu master will now leverage the cluster Id to ignore notifications from
tables in a different cluster. Additionally, the HMS plugin will check if the Kudu cluster
associated with a table has HMS synchronization enabled.
See <a href="https://issues.apache.org/jira/browse/KUDU-3192">KUDU-3192</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-3187">KUDU-3187</a> for more details.</p>
</li>
<li>
<p>The HMS integration now supports gzipped HMS notifications. This is important in order to
support Hive 4 where the default encoder was changed to be the GzipJSONMessageEncoder. See
<a href="https://issues.apache.org/jira/browse/KUDU-3201">KUDU-3201</a> for more details.</p>
</li>
<li>
<p>Kudu will now fail tablet replicas that have been corrupted due to KUDU-2233 instead of
crashing the tablet server. If a healthy majority still exists, a new replica will be created
and the failed replica will be evicted and deleted. See
<a href="https://issues.apache.org/jira/browse/KUDU-3191">KUDU-3191</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-2233">KUDU-2233</a> for more details.</p>
</li>
<li>
<p>DeltaMemStores will now be flushed as long as any DMS in a tablet is older than the point
defined by <code>--flush_threshold_secs</code>, rather than flushing once every <code>--flush_threshold_secs</code>
period. This can reduce memory pressure under update- or delete-heavy workloads, and lower tablet
server restart times following such workloads. See
<a href="https://issues.apache.org/jira/browse/KUDU-3195">KUDU-3195</a> for more details.</p>
</li>
<li>
<p>The <code>kudu perf loadgen</code> CLI tool now supports <code>UPSERT</code> for storing the generated data into
the table. To switch to <code>UPSERT</code> for row operations (instead of default <code>INSERT</code>), add the
<code>--use_upsert</code> command-line flag.</p>
</li>
<li>
<p>Users can now specify the level of parallelization when copying a tablet using the
<code>kudu local_replica copy_from_remote</code> CLI tool by passing the
<code>--tablet_copy_download_threads_nums_per_session</code> argument.</p>
</li>
<li>
<p>The Kudu Masters now discriminate between overlapped and exact duplicate key ranges when adding
new partitions, returning <code>Status::AlreadyPresent()</code> for exact range duplicates and
<code>Status::InvalidArgument()</code> for otherwise overlapped ones. In prior releases, the master
returned <code>Status::InvalidArgument()</code> both in case of duplicate and otherwise overlapped ranges.</p>
</li>
<li>
<p>The handling of an empty list of master addresses in Kudu C++ client has improved. In prior
releases, <code>KuduClientBuilder::Build()</code> would hang in <code>ConnectToCluster()</code> if no master addresses
were provided. Now, <code>KuduClientBuilder::Build()</code> instantly returns <code>Status::InvalidArgument()</code>
in such a case.</p>
</li>
<li>
<p>The connection negotiation timeout for Kudu C client is now programmatically configurable.
To customize the connection negotiation timeout, use the newly introduced
`KuduClientBuilder::connection_negotiation_timeout()` method in the Kudu C client API.</p>
</li>
<li>
<p>All RPC-related <code>kudu</code> CLI tools now have <code>--negotiation_timeout_ms</code> command line flag to
control the client-side connection negotiation timeout. The default value for the new flag is
set to 3000 milliseconds for backward compatibility. Keep in mind that the total RPC timeout
includes the connection negotiation time, so in general it makes sense to bump <code>--timeout_ms</code>
along with <code>--negotiation_timeout_ms</code> by the same delta.</p>
</li>
<li>
<p>Kudu now reports on slow SASL calls (i.e. calls taking more than 250  milliseconds to complete)
when connecting to a server. This is to help diagnose issues like described in
<a href="https://issues.apache.org/jira/browse/KUDU-3217">KUDU-3217</a>.</p>
</li>
<li>
<p>MaintenanceManager now has a new histogram-based <code>maintenance_op_find_best_candidate_duration</code>
metric to capture the stats on how long it takes (in microseconds) to find the best maintenance
operation among available candidates. The newly introduced metric can help in diagnosing
conditions where MaintenanceManager seems lagging behind the rate of write operations in a busy
Kudu cluster with many replicas per tablet server.</p>
</li>
<li>
<p>The KuduScanToken Java API has been extended with a <code>deserializeIntoScannerBuilder()</code> method that
can be used to further customize generated tokens.</p>
</li>
<li>
<p>Logging of the error message produced when applying an op while a Java KuduSession is closed
has been throttled. See
<a href="https://issues.apache.org/jira/browse/KUDU-3012">KUDU-3012</a> for more details.</p>
</li>
<li>
<p>Added a new <code>uptime</code> metric for a Kudu server. The metric&#8217;s value is reported as the length of
the time interval passed from the start of the server, in microseconds. Knowing the server&#8217;s
uptime, it&#8217;s easier to interpret and compare metrics reported by different Kudu servers.</p>
</li>
<li>
<p>Documentation for Kudu’s metrics are now automatically generated for each release and can be seen
<a href="https://kudu.apache.org/docs/metrics_reference.html">here</a>.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_fixed_issues"><a class="link" href="#rn_1.14.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed lock contention between MaintenanceManager op registration and the scheduling of new
maintenance ops. On particularly dense tablet servers, this contention was previously shown to
significantly slow down startup times. See
<a href="https://issues.apache.org/jira/browse/KUDU-3149">KUDU-3149</a> for more details.</p>
</li>
<li>
<p>Fixed lock contention between MaintenanceManager’s threads performing already scheduled
operations and the scheduler thread itself. This benefits clusters with heavy ingest/update
workloads that have many replicas per tablet server. See
<a href="https://issues.apache.org/jira/browse/KUDU-1954">KUDU-1954</a> for more details.</p>
</li>
<li>
<p>Fixed a bug in the merge iterator that could result in a crash. This could surface as a crash
when performing ordered or differential scans, particularly when the underlying data contained
deletes and reinserts. See
<a href="https://issues.apache.org/jira/browse/KUDU-3108">KUDU-3108</a> for more details.</p>
</li>
<li>
<p>Fixed a heap-use-after-free bug in Kudu C++ client that might manifest itself when altering a
table to update the partitioning schema. See
<a href="https://issues.apache.org/jira/browse/KUDU-3238">KUDU-3238</a> for more details.</p>
</li>
<li>
<p>Fixed a bug where building scan tokens would result in a NullPointerException if a tablet not
found error occurred before generating the token. See
<a href="https://issues.apache.org/jira/browse/KUDU-3205">KUDU-3205</a> for more details.</p>
</li>
<li>
<p>Fixed a bug where a delete operation would fail if the row being deleted contained exactly
64 columns and all values were set on the row. See
<a href="https://issues.apache.org/jira/browse/KUDU-3198">KUDU-3198</a> for more details.</p>
</li>
<li>
<p>Fixed a bug where Slf4j classes were shaded into the Spark integration JARs. See
<a href="https://issues.apache.org/jira/browse/KUDU-3157">KUDU-3157</a> for more details.</p>
</li>
<li>
<p>Fixed a bug where the 'kudu hms fix' tool mistakenly reports non-matching master addresses
when the addresses are in-fact canonically the same. See
<a href="https://issues.apache.org/jira/browse/KUDU-2884">KUDU-2884</a> for more details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_wire_compatibility"><a class="link" href="#rn_1.14.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.14.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.14 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.13 and Kudu 1.14 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.14 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.14 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.14 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.14 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_incompatible_changes"><a class="link" href="#rn_1.14.0_incompatible_changes">Incompatible Changes in Kudu 1.14.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.14.0_client_compatibility"><a class="link" href="#rn_1.14.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.14 Java client library is API- and ABI-compatible with Kudu 1.13. Applications
written against Kudu 1.13 will compile and run against the Kudu 1.14 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.14 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.13.
Applications written and compiled against the Kudu 1.13 client library will run without
modification against the Kudu 1.14 client library. Applications written and compiled
against the Kudu 1.14 client library will run without modification against the Kudu 1.13
client library.</p>
</li>
<li>
<p>The Kudu 1.14 Python client is API-compatible with Kudu 1.13. Applications
written against Kudu 1.13 will continue to run against the Kudu 1.14 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_known_issues"><a class="link" href="#rn_1.14.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.14.0_contributors"><a class="link" href="#rn_1.14.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.14.0 includes contributions from 12 people, including 1 first-time
contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>liguohao</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for your contributions!</p>
</div>
</div>
</div>
<h1 id="rn_1.13.0" class="sect0"><a class="link" href="#rn_1.13.0">Apache Kudu 1.13.0 Release Notes</a></h1>
<div class="sect1">
<h2 id="rn_1.13.0_upgrade_notes"><a class="link" href="#rn_1.13.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The Sentry integration has been removed and the Ranger integration should now
be used in its place for fine-grained authorization.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.13.0_deprecations"><a class="link" href="#rn_1.13.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Python 2.x and Python 3.4 and earlier is deprecated and may be
removed in the next minor release.</p>
</li>
<li>
<p>The <code>kudu-mapreduce</code> integration has been deprecated and may be removed in the
next minor release. Similar functionality and capabilities now exist via the
Apache Spark, Apache Hive, Apache Impala, and Apache NiFi integrations.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.13.0_new_features"><a class="link" href="#rn_1.13.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Added table ownership support. All newly created tables are automatically
owned by the user creating them. It is also possible to change the owner by
altering the table. You can also assign privileges to table owners via Apache
Ranger (see <a href="https://issues.apache.org/jira/browse/KUDU-3090">KUDU-3090</a>).</p>
</li>
<li>
<p>An experimental feature is added to Kudu that allows it to automatically
rebalance tablet replicas among tablet servers. The background task can be
enabled by setting the <code>--auto_rebalancing_enabled</code> flag on the Kudu masters.
Before starting auto-rebalancing on an existing cluster, the CLI rebalancer
tool should be run first (see
<a href="https://issues.apache.org/jira/browse/KUDU-2780">KUDU-2780</a>).</p>
</li>
<li>
<p>Bloom filter column predicate pushdown has been added to allow optimized
execution of filters which match on a set of column values with a
false-positive rate. Support for Impala queries utilizing Bloom filter
predicate is available yielding performance improvements of 19% to 30% in TPC-H
benchmarks and around 41% improvement for distributed joins across large
tables. Support for Spark is not yet available. (see
<a href="https://issues.apache.org/jira/browse/KUDU-2483">KUDU-2483</a>).</p>
</li>
<li>
<p>AArch64-based (ARM) architectures are now supported including published Docker
images.</p>
</li>
<li>
<p>The Java client now supports the columnar row format returned from the server
transparently. Using this format can reduce the server CPU and size of the
request over the network for scans. The columnar format can be enabled via the
setRowDataFormat() method on the KuduScanner.</p>
</li>
<li>
<p>An experimental feature that can be enabled by setting the
<code>--enable_workload_score_for_perf_improvement_ops</code> prioritizes flushing and
compacting hot tablets.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.13.0_improvements"><a class="link" href="#rn_1.13.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Hive metastore synchronization now supports Hive 3 and later.</p>
</li>
<li>
<p>The Spark KuduContext accumulator metrics now track operation counts per table
instead of cumulatively for all tables.</p>
</li>
<li>
<p>The <code>kudu local_replica delete</code> CLI tool now accepts multiple tablet
identifiers. Along with the newly added <code>--ignore_nonexistent</code> flag, this
helps with scripting scenarios when removing multiple tablet replicas from a
particular Tablet Server.</p>
</li>
<li>
<p>Both Master’s and Tablet Server’s web UI now displays the name for a service
thread pool group at the <code>/threadz</code> page</p>
</li>
<li>
<p>Introduced <code>queue_overflow_rejections_</code> metrics for both Masters and Tablet
Servers: number of RPC requests of a particular type dropped due to RPC
service queue overflow.</p>
</li>
<li>
<p>Introduced a CoDel-like queue control mechanism for the apply queue. This
helps to avoid accumulating too many write requests and timing them out in
case of seek-bound workloads (e.g., uniform random inserts). The newly
introduced queue control mechanism is disabled by default. To enable it, set
the <code>--tablet_apply_pool_overload_threshold_ms</code> Tablet Server’s flag to
appropriate value, e.g. 250 (see
<a href="https://issues.apache.org/jira/browse/KUDU-1587">KUDU-1587</a>).</p>
</li>
<li>
<p>Java client’s error collector can be resized (see
<a href="https://issues.apache.org/jira/browse/KUDU-1422">KUDU-1422</a>).</p>
</li>
<li>
<p>Calls to the Kudu master server are now drastically reduced when using scan
tokens. Previously deserializing a scan token would result in a GetTableSchema
request and potentially a GetTableLocations request. Now the table schema and
location information is serialized into the scan token itself avoiding the
need for any requests to the master when processing them.</p>
</li>
<li>
<p>The default size of Master’s RPC queue is now 100 (it was 50 in earlier
releases). This is to optimize for use cases where a Kudu cluster has many
clients working concurrently.</p>
</li>
<li>
<p>Masters now have an option to cache table location responses. This is
targeted for Kudu clusters which have many clients working concurrently. By
default, the caching of table location responses is disabled. To enable table
location caching, set the proper capacity of the table location cache using
Master’s <code>--table_locations_cache_capacity_mb</code> flag (setting to 0 disables the
caching). Up to 17% of improvement is observed in GetTableLocations request
rate when enabling the caching.</p>
</li>
<li>
<p>Removed lock contention on Raft consensus lock in Tablet Servers while
processing a write request. This helps to avoid RPC queue overflows when
handling concurrent write requests to the same tablet from multiple clients
(see <a href="https://issues.apache.org/jira/browse/KUDU-2727">KUDU-2727</a>).</p>
</li>
<li>
<p>Master’s performance for handling concurrent GetTableSchema requests has been
improved. End-to-end tests indicated up to 15% improvement in sustained
request rate for high concurrency scenarios.</p>
</li>
<li>
<p>Kudu servers now use protobuf Arena objects to perform all RPC
request/response-related memory allocations. This gives a boost for overall
RPC performance, and with further optimization the result request rate
was increased significantly for certain methods. For example, the result request
rate increased up to 25% for Master’s GetTabletLocations() RPC in case of
highly concurrent scenarios (see
<a href="https://issues.apache.org/jira/browse/KUDU-636">KUDU-636</a>).</p>
</li>
<li>
<p>Tablet Servers now use protobuf Arena for allocating Raft-related runtime
structures. This results in substantial reduction of CPU cycles used and
increases write throughput (see
<a href="https://issues.apache.org/jira/browse/KUDU-636">KUDU-636</a>).</p>
</li>
<li>
<p>Tablet Servers now use protobuf Arena for allocating EncodedKeys to reduce
allocator contention and improve memory locality (see
<a href="https://issues.apache.org/jira/browse/KUDU-636">KUDU-636</a>).</p>
</li>
<li>
<p>Bloom filter predicate evaluation for scans can be computationally expensive.
A heuristic has been added that verifies rejection rate of the supplied Bloom
filter predicate below which the Bloom filter predicate is automatically
disabled. This helped reduce regression observed with Bloom filter predicate
in TPC-H benchmark query #9 (see
<a href="https://issues.apache.org/jira/browse/KUDU-3140">KUDU-3140</a>).</p>
</li>
<li>
<p>Improved scan performance of dictionary and plain-encoded string columns by
avoiding copying them (see
<a href="https://issues.apache.org/jira/browse/KUDU-2844">KUDU-2844</a>).</p>
</li>
<li>
<p>Improved maintenance manager&#8217;s heuristics to prioritize larger memstores
(see <a href="https://issues.apache.org/jira/browse/KUDU-3180">KUDU-3180</a>).</p>
</li>
<li>
<p>Spark client&#8217;s KuduReadOptions now supports setting a snapshot timestamp for
repeatable reads with READ_AT_SNAPSHOT consistency mode (see
<a href="https://issues.apache.org/jira/browse/KUDU-3177">KUDU-3177</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.13.0_fixed_issues"><a class="link" href="#rn_1.13.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu scans now honor location assignments when multiple tablet servers are
co-located with the client.</p>
</li>
<li>
<p>Fixed a bug that caused IllegalArgumentException to be thrown when trying to
create a predicate for a DATE column in Kudu Java client (see
<a href="https://issues.apache.org/jira/browse/KUDU-3152">KUDU-3152</a>).</p>
</li>
<li>
<p>Fixed a potential race when multiple RPCs work on the same scanner object.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.13.0_wire_compatibility"><a class="link" href="#rn_1.13.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.13.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.13 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.12 and Kudu 1.13 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.13 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.13 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.13 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.13 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.13.0_incompatible_changes"><a class="link" href="#rn_1.13.0_incompatible_changes">Incompatible Changes in Kudu 1.13.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.13.0_client_compatibility"><a class="link" href="#rn_1.13.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.13 Java client library is API- and ABI-compatible with Kudu 1.12. Applications
written against Kudu 1.12 will compile and run against the Kudu 1.13 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.13 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.12.
Applications written and compiled against the Kudu 1.12 client library will run without
modification against the Kudu 1.13 client library. Applications written and compiled
against the Kudu 1.13 client library will run without modification against the Kudu 1.12
client library.</p>
</li>
<li>
<p>The Kudu 1.13 Python client is API-compatible with Kudu 1.12. Applications
written against Kudu 1.12 will continue to run against the Kudu 1.13 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.13.0_known_issues"><a class="link" href="#rn_1.13.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.13.0_contributors"><a class="link" href="#rn_1.13.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.13.0 includes contributions from 22 people, including 9 first-time
contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Jim Apple</p>
</li>
<li>
<p>Kevin J McCarthy</p>
</li>
<li>
<p>Li Zhiming</p>
</li>
<li>
<p>Mahesh Reddy</p>
</li>
<li>
<p>Romain Rigaux</p>
</li>
<li>
<p>RuiChen</p>
</li>
<li>
<p>Shuping Zhou</p>
</li>
<li>
<p>ningw</p>
</li>
<li>
<p>wenjie</p>
</li>
</ul>
</div>
</div>
</div>
<h1 id="rn_1.12.0" class="sect0"><a class="link" href="#rn_1.12.0">Apache Kudu 1.12.0 Release Notes</a></h1>
<div class="sect1">
<h2 id="rn_1.12.0_upgrade_notes"><a class="link" href="#rn_1.12.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_obsoletions"><a class="link" href="#rn_1.12.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The Flume sink has been migrated to the Apache Flume project and removed
from Kudu. Users depending on the Flume integration can use the old
<code>kudu-flume</code> jars or migrate to the Flume jars containing the Kudu sink.</p>
</li>
<li>
<p>Support for Apache Sentry authorization has been deprecated and may be
removed in the next minor release. Users depending on the Sentry integration
should migrate to the Apache Ranger integration for fine-grained authorization.</p>
</li>
<li>
<p>Support for Python 2 has been deprecated and may be removed in the next minor
release.</p>
</li>
<li>
<p>Support for CentOS/RHEL 6, Debian 8, Ubuntu 14 has been deprecated and may
be removed in the next minor release.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_deprecations"><a class="link" href="#rn_1.12.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_new_features"><a class="link" href="#rn_1.12.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu now supports native fine-grained authorization via integration with
Apache Ranger. Kudu may now enforce access control policies defined for
Kudu tables and columns stored in Ranger. See the
<a href="security.html#fine_grained_authz">authorization documentation</a>
for more details.</p>
</li>
<li>
<p>Kudu’s web UI now supports proxying via Apache Knox. Kudu may be deployed
in a firewalled state behind a Knox Gateway which will forward HTTP requests
and responses between clients and the Kudu web UI.</p>
</li>
<li>
<p>Kudu’s web UI now supports HTTP keep-alive. Operations that access multiple
URLs will now reuse a single HTTP connection, improving their performance.</p>
</li>
<li>
<p>The <code>kudu tserver quiesce</code> tool is added to quiesce tablet servers. While a
tablet server is quiescing, it will stop hosting tablet leaders and stop
serving new scan requests. This can be used to orchestrate a rolling restart
without stopping on-going Kudu workloads.</p>
</li>
<li>
<p>Introduced <code>auto</code> time source for HybridClock timestamps. With
<code>--time_source=auto</code> in AWS and GCE cloud environments, Kudu masters and
tablet servers use the built-in NTP client synchronized with dedicated NTP
servers available via host-only networks. With <code>--time_source=auto</code> in
environments other than AWS/GCE, Kudu masters and tablet servers rely on
their local machine&#8217;s clock synchronized by NTP. The default setting for
the HybridClock time source (<code>--time_source=system</code>) is backward-compatible,
requiring the local machine&#8217;s clock to be synchronized by the kernel&#8217;s NTP
discipline.</p>
</li>
<li>
<p>The <code>kudu cluster rebalance</code> tool now supports moving replicas away from
specific tablet servers by supplying the <code>--ignored_tservers</code> and
<code>--move_replicas_from_ignored_tservers</code> arguments (see
<a href="https://issues.apache.org/jira/browse/KUDU-2914">KUDU-2914</a> for more
details).</p>
</li>
<li>
<p>The <code>kudu table create</code> tool is added to allow users to specify table
creation options using JSON.</p>
</li>
<li>
<p>Kudu now supports DATE and VARCHAR data types. See the
<a href="http://kudu.apache.org/docs/schema_design.html">schema design documentation</a>
for more details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_improvements"><a class="link" href="#rn_1.12.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Write Ahead Log file segments and index chunks are now managed by Kudu’s file
cache. With that, all long-lived file descriptors used by Kudu are managed by
the file cache, and there’s no longer a need for capacity planning of file
descriptor usage.</p>
</li>
<li>
<p>Kudu no longer requires the running of <code>kudu fs update_dirs</code> to change a
directory configuration or recover from a disk failure
(see <a href="https://issues.apache.org/jira/browse/KUDU-2993">KUDU-2993</a>).</p>
</li>
<li>
<p>Kudu tablet servers and masters now expose a tablet-level metric
<code>num_raft_leaders</code> for the number of Raft leaders hosted on the server.</p>
</li>
<li>
<p>Kudu&#8217;s maintenance operation scheduling has been updated to prioritize
reducing WAL retention under memory pressure. Kudu would previously prioritize
operations that yielded high-memory reduction, which could result in high WAL
disk usage in workloads that contained updates
(see <a href="https://issues.apache.org/jira/browse/KUDU-3002">KUDU-3002</a>).</p>
</li>
<li>
<p>A new maintenance operation is introduced to remove rowsets that have had all
of their rows deleted and whose newest delete operations are considered
ancient (see <a href="https://issues.apache.org/jira/browse/KUDU-1625">KUDU-1625</a>).</p>
</li>
<li>
<p>The built-in NTP client is now fully supported as the time source for Kudu&#8217;s
HybridTime clock, i.e. it&#8217;s no longer marked as experimental. To switch the
time source from the existing <code>system</code> time source (which is the default)
to the built-in NTP client, use <code>--time_source=builtin</code>.</p>
</li>
<li>
<p>Introduced additional metrics for the built-in NTP client
(see <a href="https://issues.apache.org/jira/browse/KUDU-3048">KUDU-3048</a>).</p>
</li>
<li>
<p>Updated <code>/config</code> page of masters' and tablet servers' web UI to display
configured and effective time source. In addition, the effective list of
reference servers for the built-in NTP client is shown there as well,
if applicable.</p>
</li>
<li>
<p><code>chronyd</code> (version 3.4 and newer) is now supported as NTP server for
synchronizing the local machine&#8217;s clock in a Kudu cluster. It&#8217;s important to
have the <code>rtcsync</code> option enabled in the configuration of the <code>chronyd</code> NTP
daemon (see <a href="https://issues.apache.org/jira/browse/KUDU-2573">KUDU-2573</a>).</p>
</li>
<li>
<p>Kudu now supports building and running on RHEL/CentOS 8. This has been tested
with CentOS 8.1.</p>
</li>
<li>
<p>The processing of Raft consensus vote requests has been improved to be more
robust during high contention scenarios like election storms.</p>
</li>
<li>
<p>Added a validator to enforce consistency between the maximum size of an RPC
and the maximum size of tablet transaction memory, controlled by
<code>--rpc_max_message_size</code> and <code>--tablet_transaction_memory</code> flags
correspondingly.  In prior releases, if the limit on the size of RPC requests
is increased and the limit on tablet transaction memory size is kept with the
default setting, certain Raft transactions could be committed but not applied
(see <a href="https://issues.apache.org/jira/browse/KUDU-3023">KUDU-3023</a>).</p>
</li>
<li>
<p>The metrics endpoint now supports filtering metrics by a metric severity level.
See the <a href="https://kudu.apache.org/docs/administration.html#_collecting_metrics_via_http">documentation</a>
for more details.</p>
</li>
<li>
<p>Many <code>kudu local_replica</code> tools are updated to not open the block manager,
which significantly reduces the amount of IO done when running them (see
<a href="https://issues.apache.org/jira/browse/KUDU-3070">KUDU-3070</a> for more
details).</p>
</li>
<li>
<p>The Kudu Java client now exposes a way to get the resource metrics associated
with a given scanner (see
<a href="https://issues.apache.org/jira/browse/KUDU-2162">KUDU-2162</a> for more
details).</p>
</li>
<li>
<p>Scan predicates are pushed down to RLE decoders, improving
predicate-evaluation-efficiency in some workloads (see
<a href="https://issues.apache.org/jira/browse/KUDU-2852">KUDU-2852</a> for more
details).</p>
</li>
<li>
<p>The log block manager will now attempt to use multiple threads to open blocks
in each data directory, in some tests reducing startup time by up to 20% (see
<a href="https://issues.apache.org/jira/browse/KUDU-2977">KUDU-2977</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-3001">KUDU-3001</a> for more
details).</p>
</li>
<li>
<p>Kudu&#8217;s tablet server web UI scans page is updated to show the number of round
trips per scanner.</p>
</li>
<li>
<p>Kudu&#8217;s master and tablet server web UIs are updated to show critical
partition information, including tablet count and on-disk size.</p>
</li>
<li>
<p>Kudu servers now expose the <code>last_read_elapsed_seconds</code> and
<code>last_write_elapsed_seconds</code> tablet-level metrics that indicate how long ago
the most recent read and write operations to a given tablet were.</p>
</li>
<li>
<p>Kudu servers now expose the <code>transaction_memory_limit_rejections</code>
tablet-level metric that tracks the number of transactions rejected because a
given tablet&#8217;s transactional memory limit was reached (see
<a href="https://issues.apache.org/jira/browse/KUDU-3021">KUDU-3021</a> for more
details).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_fixed_issues"><a class="link" href="#rn_1.12.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed a bug in which Kudu would not schedule compactions if a server were
under memory pressure
(see <a href="https://issues.apache.org/jira/browse/KUDU-2929">KUDU-2929</a>).</p>
</li>
<li>
<p>Fixed a bug where DDL operations like ALTER TABLE on tables with huge
number of partitions might result in a DoS situation for Kudu masters
(see <a href="https://issues.apache.org/jira/browse/KUDU-3036">KUDU-3036</a>).</p>
</li>
<li>
<p>Fixed a bug where Kudu Java client cannot negotiate a secure connection
with Kudu masters and tablet servers if using BouncyCastle JCE provider
(see <a href="https://issues.apache.org/jira/browse/KUDU-3106">KUDU-3106</a>).</p>
</li>
<li>
<p>Kudu masters will now crash immediately upon hitting a disk failure (see
<a href="https://issues.apache.org/jira/browse/KUDU-2904">KUDU-2904</a> for more details).</p>
</li>
<li>
<p>Fixed an issue in the Kudu master in which delays in receiving tablet server
heartbeats could result in an excess amount of RPC traffic between the
masters and tablet servers (see
<a href="https://issues.apache.org/jira/browse/KUDU-2992">KUDU-2992</a> for more
details).</p>
</li>
<li>
<p>Fixed an issue with Kudu&#8217;s location placement policy that would place all
replicas in one location when two locations were available (see
<a href="https://issues.apache.org/jira/browse/KUDU-3008">KUDU-3008</a> for more
details).</p>
</li>
<li>
<p>The Java client will now correctly propagate timestamps when sending write
batches (see <a href="https://issues.apache.org/jira/browse/KUDU-3035">KUDU-3035</a>
for more detail).</p>
</li>
<li>
<p>Fixed an issue with the Kudu backup Spark jobs in which Kudu would return
with a non-zero exit if the job succeeded but backed up no rows (see
<a href="https://issues.apache.org/jira/browse/KUDU-3099">KUDU-3099</a> for more
details).</p>
</li>
<li>
<p>The <code>raft_term</code> and <code>time_since_last_leader_heartbeat</code> aggregated table
metrics will now return the maximum metric reported instead of the sum.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_wire_compatibility"><a class="link" href="#rn_1.12.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.12.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.12 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.11 and Kudu 1.12 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.12 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.12 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.12 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.12 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_incompatible_changes"><a class="link" href="#rn_1.12.0_incompatible_changes">Incompatible Changes in Kudu 1.12.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.12.0_client_compatibility"><a class="link" href="#rn_1.12.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.12 Java client library is API- and ABI-compatible with Kudu 1.11. Applications
written against Kudu 1.11 will compile and run against the Kudu 1.12 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.12 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.11.
Applications written and compiled against the Kudu 1.11 client library will run without
modification against the Kudu 1.12 client library. Applications written and compiled
against the Kudu 1.12 client library will run without modification against the Kudu 1.11
client library.</p>
</li>
<li>
<p>The Kudu 1.12 Python client is API-compatible with Kudu 1.11. Applications
written against Kudu 1.11 will continue to run against the Kudu 1.12 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_known_issues"><a class="link" href="#rn_1.12.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.12.0_contributors"><a class="link" href="#rn_1.12.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.12 includes contributions from 33 people, including 8 first-time
contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Andy Singer</p>
</li>
<li>
<p>Michele Milesi</p>
</li>
<li>
<p>Ning Wang</p>
</li>
<li>
<p>Renhai Zhao</p>
</li>
<li>
<p>Sheng Liu</p>
</li>
<li>
<p>Thomas D&#8217;Silva</p>
</li>
<li>
<p>Tianhua Huang</p>
</li>
<li>
<p>Waleed Fateem</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for your help in making Kudu even better!</p>
</div>
<div id="rn_1.11.1" class="paragraph">
<p>Apache Kudu 1.11.1 is a bug-fix release which fixes one critical licensing
issue in Kudu 1.11.0.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.1_upgrade_notes"><a class="link" href="#rn_1.11.1_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>When upgrading from earlier versions of Kudu, if support for Kudu&#8217;s NVM
(non-volatile memory) block cache is desired, install the <code>memkind</code> library
of version 1.8.0 or newer as documented in <a href="installation.html">Kudu
Installation</a> for corresponding platform. This is a mandatory step for existing
users of the NVM block cache (i.e. those who set <code>--block_cache_type=NVM</code>
for <code>kudu-master</code> and <code>kudu-tserver</code>): they must install <code>memkind</code>, otherwise
their Kudu processes will crash at startup.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.1_fixed_issues"><a class="link" href="#rn_1.11.1_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed an issue with distributing <code>libnuma</code> dynamic library with <code>kudu-binary</code>
JAR artifact. Also, fixed the issue of statically compiling in <code>libnuma.a</code>
into <code>kudu-master</code> and <code>kudu-tserver</code> binaries when building Kudu
from source in release mode. The fix removes both <code>numactl</code> and <code>memkind</code>
projects from Kudu&#8217;s thirdparty dependencies and makes the dependency on the
<code>libmemkind</code> library optional, opening the library using <code>dlopen()</code> and
resolving required symbols via <code>dlsym()</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-2990">KUDU-2990</a>).</p>
</li>
<li>
<p>Fixed an issue with <code>kudu cluster rebalancer</code> CLI tool crashing when running
against a location-aware cluster if a tablet server in one location doesn&#8217;t
contain a single tablet replica
(see <a href="https://issues.apache.org/jira/browse/KUDU-2987">KUDU-2987</a>).</p>
</li>
<li>
<p>Fixed an issue with connection negotiation using SASL mechanism when server
FQDN is longer than 64 characters
(see <a href="https://issues.apache.org/jira/browse/KUDU-2989">KUDU-2989</a>).</p>
</li>
<li>
<p>Fixed an issue in the test harness of the kudu-binary JAR artifact. With this
fix, <code>kudu-master</code> and <code>kudu-tserver</code> processes of the mini-cluster&#8217;s test
harness no longer rely on the test NTP server to synchronize their built-in
NTP client. Instead, the test harness relies on the local machine clock
synchronized by the system NTP daemon
(see <a href="https://issues.apache.org/jira/browse/KUDU-2994">KUDU-2994</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<h1 id="rn_1.11.0" class="sect0"><a class="link" href="#rn_1.11.0">Apache Kudu 1.11.0 Release Notes</a></h1>
<div class="sect1">
<h2 id="rn_1.11.0_upgrade_notes"><a class="link" href="#rn_1.11.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Since <a href="https://issues.apache.org/jira/browse/KUDU-2625">KUDU-2625</a> is
addressed, tablet servers now reject individual write operations which
violate schema constraints in a batch of write operations. In prior versions
the behavior was to reject the whole batch of write operations if a violation
of the schema constraints is detected even for a single row. It&#8217;s recommended
to revise applications which relied on the behavior mentioned above
upon upgrading to Kudu 1.11.0.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.0_deprecations"><a class="link" href="#rn_1.11.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The Kudu Flume integration is deprecated and may be removed in the
next minor release. The integration will be moved to the Apache Flume
project going forward
(see <a href="https://issues.apache.org/jira/browse/FLUME-3345">FLUME-3345</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.0_new_features"><a class="link" href="#rn_1.11.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu now supports putting tablet servers into maintenance. While in this
mode, the tablet server&#8217;s replicas will not be re-replicated if it fails.
Only upon exiting maintenance will re-replication be triggered for any
remaining under-replicated tablets. The <code>kudu tserver state enter_maintenance</code>
and <code>kudu tserver state exit_maintenance</code> tools are added to orchestrate
tablet server maintenance, and the <code>kudu tserver list</code> tool is amended with
a "state" column option to display current state of each tablet server
(see <a href="https://issues.apache.org/jira/browse/KUDU-2069">KUDU-2069</a>).</p>
</li>
<li>
<p>Kudu now has a built-in NTP client which maintains the internal wallclock
time used for generation of HybridTime timestamps. When enabled, system clock
synchronization for nodes running Kudu is no longer necessary. This is useful
for containerized deployments and in other cases when it&#8217;s troublesome
to maintain properly configured system NTP service at each node of a Kudu
cluster. The list of NTP servers to synchronize against is specified with the
<code>--builtin_ntp_servers</code> flag. By default, Kudu masters and tablet servers use
public servers hosted by the NTP Pool project. To use the built-in NTP
client, set <code>--time_source=builtin</code> and reconfigure <code>--builtin_ntp_servers</code>
if necessary
(see <a href="https://issues.apache.org/jira/browse/KUDU-2935">KUDU-2935</a>).</p>
</li>
<li>
<p>Aggregated table statistics are now available to Kudu clients via
<code>KuduClient.getTableStatistics()</code> and <code>KuduTable.getTableStatistics()</code>
methods in the Kudu Java client and <code>KuduClient.GetTableStatistics()</code>
in the Kudu C&#43;&#43; client. This allows for various query optimizations.
For example, Spark now uses it to perform join optimizations.
The statistics are available via the API of both C&#43;&#43; and Java Kudu clients.
In addition, per-table statistics are available via <code>kudu table statistics</code>
CLI tool. The statistics are also available via master&#8217;s Web UI at
<code>master:8051/metrics</code> and <code>master:8051/table?id=&lt;uuid&gt;</code> URIs
(see <a href="https://issues.apache.org/jira/browse/KUDU-2797">KUDU-2797</a> and
 <a href="https://issues.apache.org/jira/browse/KUDU-2921">KUDU-2921</a>).</p>
</li>
<li>
<p>The <code>kudu</code> CLI tool now supports altering table columns. Use the newly
introduced sub-commands such as <code>kudu table column_set_default</code>,
<code>kudu table column_remove_default</code>, <code>kudu table column_set_compression</code>,
<code>kudu table column_set_encoding</code>, and <code>kudu table column_set_block_size</code>
to alter a column of the specified table.</p>
</li>
<li>
<p>The <code>kudu</code> CLI tool now supports dropping table columns. Use the newly
introduced <code>kudu table delete_column</code> sub-command to drop a column of the
specified table.</p>
</li>
<li>
<p>The <code>kudu</code> CLI tool now supports getting and setting extra
configuration properties for a table. Use <code>kudu table get_extra_configs</code>
and <code>kudu table set_extra_config</code> sub-commands to perform the corresponding
operations
(see <a href="https://issues.apache.org/jira/browse/KUDU-2514">KUDU-2514</a>).</p>
</li>
<li>
<p>The <code>kudu</code> CLI tool now supports creating and dropping range partitions
for a table. Use <code>kudu table add_range_partition</code> and
<code>kudu table drop_range_partition</code> sub-commands to perform the corresponding
operations
(see <a href="https://issues.apache.org/jira/browse/KUDU-2881">KUDU-2881</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.0_improvements"><a class="link" href="#rn_1.11.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The <code>kudu fs dump uuid</code> CLI tool is now significantly faster and consumes
significantly less IO.</p>
</li>
<li>
<p>The memory consumed by CFileReaders and BloomFileReaders is factored out and
accounted separately by the tablet server memory tracking. The stats are
available via Web UI as "CFileReaders" and "BloomFileReaders" entries.</p>
</li>
<li>
<p><code>KuduScanBatch::const_iterator</code> in Kudu C&#43;&#43; client now supports
<code>operator&#8594;()</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-1561">KUDU-1561</a>).</p>
</li>
<li>
<p>Master server Web UI now supports sorting the list of tables by the columns
of "Table Name", "Create Time", and "Last Alter Time".</p>
</li>
<li>
<p>Tablet servers now expand a tablet&#8217;s data directory group with available
healthy directories when all directories of the group are full
(see <a href="https://issues.apache.org/jira/browse/KUDU-2907">KUDU-2907</a>).</p>
</li>
<li>
<p>For scan operations run with <code>CLOSEST_REPLICA</code> selection mode, the Kudu Java
client now picks a random available replica in case no replica is located at
the same node with the client that initiated the scan operation. This helps
to spread the load generated by multiple scan requests to the same tablet
among all available replicas. In prior releases, all such scan requests might
end up fetching data from the same tablet replica
(see <a href="https://issues.apache.org/jira/browse/KUDU-2348">KUDU-2348</a>).</p>
</li>
<li>
<p>The serialization of in-memory rows to Kudu&#8217;s wire format has been optimized
to be more CPU efficient
(see <a href="https://issues.apache.org/jira/browse/KUDU-2847">KUDU-2847</a>).</p>
</li>
<li>
<p>Tablet servers and masters can now aggregate metrics by the same attribute.
For example, it&#8217;s now possible to fetch aggregated metrics from a tablet
server by retrieving data from URLs of form
<code><a href="http://&lt;host&gt;:&lt;port&gt;/metrics?merge_rules=tablet|table|table_name" class="bare">http://&lt;host&gt;:&lt;port&gt;/metrics?merge_rules=tablet|table|table_name</a></code></p>
</li>
<li>
<p>Introduced Docker image for Python Kudu client
(see <a href="https://issues.apache.org/jira/browse/KUDU-2849">KUDU-2849</a>).</p>
</li>
<li>
<p>Tablet servers now consider available disk space when choosing a set of data
directories for a tablet&#8217;s data directory group, and when deciding in which
data directory a new block should be written
(see <a href="https://issues.apache.org/jira/browse/KUDU-2901">KUDU-2901</a>).</p>
</li>
<li>
<p>Added a quick-start example of using Apache Spark to load, query, and modify
a real data set stored in Kudu.</p>
</li>
<li>
<p>Added a quick-start example of using Apache Nifi to ingest data into Kudu.</p>
</li>
<li>
<p>Tablet servers now reject individual write operations which violate schema
constraints in a batch of write operations received from a client. The
previous behavior was to reject the whole batch of write operations
if a violation of the schema constraints is detected even for a single row
(see <a href="https://issues.apache.org/jira/browse/KUDU-2625">KUDU-2625</a>).</p>
</li>
<li>
<p>Tablet replicas can now be optionally placed in accordance with a
dimension-based placement policy. To specify a dimension label for a table,
use the <code>KuduTableCreator::dimension_label()</code> and
<code>CreateTableOptions.setDimensionLabel()</code> methods of the C&#43;&#43; and Java Kudu
clients. To add a partition with a dimension label, use the
<code>KuduTableAlterer::AddRangePartitionWithDimension()</code> and
<code>AlterTableOptions.addRangePartition()</code> methods of the C&#43;&#43; and Java Kudu
clients
(see <a href="https://issues.apache.org/jira/browse/KUDU-2823">KUDU-2823</a>).</p>
</li>
<li>
<p>Kudu RPC now enables TCP keepalive for all outbound connections for faster
detection of no-longer-reachable nodes
(see <a href="https://issues.apache.org/jira/browse/KUDU-2192">KUDU-2192</a>).</p>
</li>
<li>
<p>The <code>kudu table scan</code> and <code>kudu table copy</code> CLI tools now fail gracefully
rather than crashing upon hitting an error
(see <a href="https://issues.apache.org/jira/browse/KUDU-2851">KUDU-2851</a>).</p>
</li>
<li>
<p>Optimized decoding of deltas' timestamps
(see <a href="https://issues.apache.org/jira/browse/KUDU-2867">KUDU-2867</a>).</p>
</li>
<li>
<p>Optimized the initialization of DeltaMemStore for the case when no matching
deltas are present
(see <a href="https://issues.apache.org/jira/browse/KUDU-2381">KUDU-2381</a>).</p>
</li>
<li>
<p>Improved the rehydration of scan tokens. Now a scan token created
before renaming a column can be used even after the column has been renamed.</p>
</li>
<li>
<p>The memory reserved by tcmalloc is now released to OS periodically to avoid
potential OOM issues in the case of read-only workloads
(see <a href="https://issues.apache.org/jira/browse/KUDU-2836">KUDU-2836</a>).</p>
</li>
<li>
<p>Optimized evaluation of predicates on columns of primitive types and
<code>NULL</code>/<code>NOT NULL</code> predicates to leverage SIMD instructions
(see <a href="https://issues.apache.org/jira/browse/KUDU-2846">KUDU-2846</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.0_fixed_issues"><a class="link" href="#rn_1.11.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed an issue of fault-tolerant scan operation failing for a projection
with key columns specified in other than the table schema&#8217;s order
(see <a href="https://issues.apache.org/jira/browse/KUDU-2980">KUDU-2980</a>).</p>
</li>
<li>
<p>Fixed an issue that would cause frequent leader elections in case when
persisting Raft transactions to the WAL took longer than the leader
election timeout. The issue was contributing to election storms
(see <a href="https://issues.apache.org/jira/browse/KUDU-2947">KUDU-2947</a>).</p>
</li>
<li>
<p>Fixed a tablet server crash in cases where blocks were not removed due to IO
error. This issue may have surfaced after recovering from a disk failure
(see <a href="https://issues.apache.org/jira/browse/KUDU-2635">KUDU-2635</a>).</p>
</li>
<li>
<p>Fixed a crash in master and tablet server by validating the size of default
values when de-serializing <code>ColumnSchemaPB</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-2622">KUDU-2622</a>).</p>
</li>
<li>
<p>Fixed RPC negotiation failure in the case when TLS v1.3 is supported at
both the client and the server side. This is a temporary workaround before
the connection negotiation code is properly updated to support 1.5-RTT
handshake used in TLS v1.3. The issue affected Linux distributions shipped
or updated with OpenSSL version 1.0.2 and newer
(see <a href="https://issues.apache.org/jira/browse/KUDU-2871">KUDU-2871</a>).</p>
</li>
<li>
<p>Fixed a race between <code>GetTabletLocations()</code> and tablet report processing.
The race could crash the Kudu master
(see <a href="https://issues.apache.org/jira/browse/KUDU-2842">KUDU-2842</a>).</p>
</li>
<li>
<p>Fixed a bug in <code>AlterSchemaTransactionState::ToString()</code> that led to a crash
of tablet server when removing a tablet replica with a pending <code>AlterSchema</code>
transaction.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.0_wire_compatibility"><a class="link" href="#rn_1.11.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.11.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.11 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.10 and Kudu 1.11 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.11 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.11 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.11 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.11 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="rn_1.11.0_client_compatibility"><a class="link" href="#rn_1.11.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.11 Java client library is API- and ABI-compatible with Kudu 1.10. Applications
written against Kudu 1.10 will compile and run against the Kudu 1.11 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.11 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.10.
Applications written and compiled against the Kudu 1.10 client library will run without
modification against the Kudu 1.11 client library. Applications written and compiled
against the Kudu 1.11 client library will run without modification against the Kudu 1.10
client library.</p>
</li>
<li>
<p>The Kudu 1.11 Python client is API-compatible with Kudu 1.10. Applications
written against Kudu 1.10 will continue to run against the Kudu 1.11 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.0_known_issues"><a class="link" href="#rn_1.11.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.11.0_contributors"><a class="link" href="#rn_1.11.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.11 includes contributions from 24 people, including 8 first-time
contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Hannah Nguyen</p>
</li>
<li>
<p>lingbin</p>
</li>
<li>
<p>Ritwik Yadav</p>
</li>
<li>
<p>Scott Reynolds</p>
</li>
<li>
<p>Volodymyr Verovkin</p>
</li>
<li>
<p>Xiaokai Wang</p>
</li>
<li>
<p>Xin He</p>
</li>
<li>
<p>Yao Wang</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for your help in making Kudu even better!</p>
</div>
<div id="rn_1.10.1" class="paragraph">
<p>Apache Kudu 1.10.1 is a bug-fix release which fixes one critical licensing
issue in Kudu 1.10.0.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.1_upgrade_notes"><a class="link" href="#rn_1.10.1_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>When upgrading from earlier versions of Kudu, if support for Kudu&#8217;s NVM
(non-volatile memory) block cache is desired, install the <code>memkind</code> library
of version 1.6.0 or newer as documented in <a href="installation.html">Kudu
Installation</a> for corresponding platform. This is a mandatory step for existing
users of the NVM block cache (i.e. those who set <code>--block_cache_type=NVM</code>
for <code>kudu-master</code> and <code>kudu-tserver</code>): they must install <code>memkind</code>, otherwise
their Kudu processes will crash at startup.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.1_fixed_issues"><a class="link" href="#rn_1.10.1_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed an issue with distributing <code>libnuma</code> dynamic library with <code>kudu-binary</code>
JAR artifact. Also, fixed the issue of statically compiling in <code>libnuma.a</code>
into <code>kudu-master</code> and <code>kudu-tserver</code> binaries when building Kudu
from source in release mode. The fix removes both <code>numactl</code> and <code>memkind</code>
projects from Kudu&#8217;s thirdparty dependencies and makes the dependency on the
<code>libmemkind</code> library optional, opening the library using <code>dlopen()</code> and
resolving required symbols via <code>dlsym()</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-2990">KUDU-2990</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0"><a class="link" href="#rn_1.10.0">Release Notes Specific to 1.10.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_upgrade_notes"><a class="link" href="#rn_1.10.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The default tablet history retention time has been raised from 15 minutes to
7 days to better support touchless incremental backups
(see <a href="https://issues.apache.org/jira/browse/KUDU-2677">KUDU-2677</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_obsoletions"><a class="link" href="#rn_1.10.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_deprecations"><a class="link" href="#rn_1.10.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_new_features"><a class="link" href="#rn_1.10.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu now supports both full and incremental table backups via a job
implemented using Apache Spark. Additionally it supports restoring
tables from full and incremental backups via a restore job implemented using
Apache Spark. See the <a href="administration.html#backup">backup documentation</a>
for more details.</p>
</li>
<li>
<p>Kudu can now synchronize its internal catalog with the Apache Hive Metastore,
automatically updating Hive Metastore table entries upon table creation,
deletion, and alterations in Kudu. See the
<a href="hive_metastore.html#metadata_sync">HMS synchronization documentation</a>
for more details.</p>
</li>
<li>
<p>Kudu now supports native fine-grained authorization via integration with
Apache Sentry. Kudu may now enforce access control policies defined for Kudu
tables and columns, as well as policies defined on Hive servers and databases
that may store Kudu tables. See the
<a href="security.html#fine_grained_authz">authorization documentation</a> for more
details.</p>
</li>
<li>
<p>Kudu’s web UI now supports SPNEGO, a protocol for securing HTTP requests with
Kerberos by passing negotiation through HTTP headers. To enable, set the
<code>--webserver_require_spnego</code> command line flag.</p>
</li>
<li>
<p>Column comments can now be stored in Kudu tables, and can be updated using
the AlterTable API
(see <a href="https://issues.apache.org/jira/browse/KUDU-1711">KUDU-1711</a>).</p>
</li>
<li>
<p>The Java scan token builder can now create multiple tokens per tablet.
To use this functionality, call <code>setSplitSizeBytes()</code> to specify how many bytes
of data each token should scan. The same API is also available in Kudu’s
Spark integration, where it can be used to spawn multiple Spark tasks per
scanned tablet
(see <a href="https://issues.apache.org/jira/browse/KUDU-2670">KUDU-2670</a>).</p>
</li>
<li>
<p>Experimental Kudu Docker images are now published on
<a href="https://hub.docker.com/r/apache/kudu">Docker Hub</a>.</p>
</li>
<li>
<p>Kudu now has an experimental Kubernetes StatefulSet manifest and Helm chart,
which can be used to define and provision Kudu clusters using Kubernetes
(see <a href="https://issues.apache.org/jira/browse/KUDU-2398">KUDU-2398</a>).</p>
</li>
<li>
<p>The Kudu CLI now has rudimentary YAML-based configuration file support,
which can be used to provide cluster connection information via cluster name
instead of keying in comma-separated lists of master addresses.
See the <a href="https://kudu.apache.org/docs/administration.html#using_cluster_names_in_kudu_tool">cluster name documentation</a>
for more details.</p>
</li>
<li>
<p><code>kudu perf table_scan</code> scans a table and displays a table’s row count as well
as the time it took to run the scan.</p>
</li>
<li>
<p><code>kudu table copy</code> copies data from one table to another, within the same
cluster or across clusters. Note, this implementation leverages a single client,
therefore it may not be suitable for large tables.</p>
</li>
<li>
<p>Tablet history retention time can now be configured on a table-by-table basis.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2514">KUDU-2514</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_improvements"><a class="link" href="#rn_1.10.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The performance of mutations (i.e. UPDATE, DELETE, and re-INSERT) to
not-yet-flushed Kudu data has been significantly optimized
(see <a href="https://issues.apache.org/jira/browse/KUDU-2826">KUDU-2826</a> and
<a href="https://github.com/apache/kudu/commit/f9f9526d3">f9f9526d3</a>).</p>
</li>
<li>
<p>Predicate performance for primitive columns has been optimized
(see <a href="https://issues.apache.org/jira/browse/KUDU-2846">KUDU-2846</a>).</p>
</li>
<li>
<p>IS NULL and IS NOT NULL predicate performance has been optimized
(see <a href="https://issues.apache.org/jira/browse/KUDU-2846">KUDU-2846</a>).</p>
</li>
<li>
<p>Optimized the performance of fetching tablet locations from the master for
tables with large numbers of partitions. This can improve the performance of
short-running Spark or Impala queries as well as user applications which make
use of short-lived client instances
(see <a href="https://issues.apache.org/jira/browse/KUDU-2711">KUDU-2711</a>).</p>
</li>
<li>
<p>The <code>tableExists()</code> (Java) and <code>TableExists()</code> (C++) APIs are now more performant
(see <a href="https://issues.apache.org/jira/browse/KUDU-2802">KUDU-2802</a>).</p>
</li>
<li>
<p>Fault tolerant scans are now much more performant and consume far less memory
(see <a href="https://issues.apache.org/jira/browse/KUDU-2466">KUDU-2466</a>).</p>
</li>
<li>
<p><code>kudu cluster ksck</code> now sends more requests in parallel, which should result
in a speed-up when running against clusters with many tables or when there’s
high latency between the node running the CLI and the cluster nodes.</p>
</li>
<li>
<p>Kudu’s block manager now deletes spent block containers when needed instead of
just at server startup. This should reduce server startup times somewhat
(see <a href="https://issues.apache.org/jira/browse/KUDU-2636">KUDU-2636</a>).</p>
</li>
<li>
<p>DNS resolutions are now cached by Kudu masters, tablet servers, and
Kudu C++ clients. The TTL for a resolved DNS entry in the cache is 15 seconds
by default
(see <a href="https://issues.apache.org/jira/browse/KUDU-2791">KUDU-2791</a>).</p>
</li>
<li>
<p>Tables created in Kudu 1.10.0 or later will show their creation time as well
as their last alteration time in the web UI
(see <a href="https://issues.apache.org/jira/browse/KUDU-2750">KUDU-2750</a>).</p>
</li>
<li>
<p>The Kudu CLI and C++ client now support overriding the local username using
the ‘KUDU_USER_NAME’ environment variable. This allows operating against a
Kudu cluster using an identity which differs from the local Unix user on the
client. Note that this has no effect on secure clusters, where client identity
is determined by Kerberos authentication
(see <a href="https://issues.apache.org/jira/browse/KUDU-2717">KUDU-2717</a>).</p>
</li>
<li>
<p>Kudu C++ client now performs stricter verification on the input data of
INSERT and UPSERT operations w.r.t. table schema constraints. This helps
spotting schema violations before sending the data to a tablet server.</p>
</li>
<li>
<p>The <code>KuduScanner</code> in the Java client is now iterable. Additionally the
<code>KuduScannerIterator</code> will automatically make scanner keep alive calls to
ensure scanners do not time out while iterating.</p>
</li>
<li>
<p>A <code>KuduPartitioner</code> API was added to the Java client. The <code>KuduPartitioner</code>
API allows a client to determine which partition a row falls into without
actually writing that row. For example, the <code>KuduPartitioner</code> is used in the
Spark integration to optionally repartition and pre-sort the data before
writing to Kudu
(see <a href="https://issues.apache.org/jira/browse/KUDU-2674">KUDU-2674</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-2672">KUDU-2672</a>).</p>
</li>
<li>
<p>The <code>PartialRow</code> and <code>RowResult</code> Java API have new methods that accept and return
Java Objects. These methods are useful when you don&#8217;t care about autoboxing
and your existing type handling logic is based on Java types. See the javadoc
for more details.</p>
</li>
<li>
<p>The Kudu Java client now logs RPC trace summaries instead of full RPC traces when
the log level is <code>INFO</code> or higher. This reduces log noise and makes RPC issues
more visible in a more compact format
(see <a href="https://issues.apache.org/jira/browse/KUDU-2830">KUDU-2830</a>).</p>
</li>
<li>
<p>Kudu servers now display the time at which they were started in their web UIs.</p>
</li>
<li>
<p>Kudu tablet servers now display a table’s total column count in the web UI.</p>
</li>
<li>
<p>The <code>/metrics</code> web UI endpoint now supports filtering on entity types,
entity IDs, entity attributes, and metric names. This can be used to more
efficiently collect important metrics when there is a large number of tablets
on a tablet server.</p>
</li>
<li>
<p>The Kudu rebalancer now accepts the <code>--ignored_tservers</code> command line
argument, which can be used to ignore the health status of specific tablet
servers (i.e. if they are down) when deciding whether or not it’s safe to
rebalance the cluster.</p>
</li>
<li>
<p><code>kudu master list</code> now displays the Raft consensus role of each master in the
cluster (i.e. LEADER or FOLLOWER)
(see <a href="https://issues.apache.org/jira/browse/KUDU-2825">KUDU-2825</a>).</p>
</li>
<li>
<p><code>kudu table scan</code> no longer interleaves its output, and now projects all
columns without having to manually list the column names.</p>
</li>
<li>
<p><code>kudu perf loadgen</code> now supports creating empty tables. The semantics of the
special value of 0 for <code>--num_rows_per_thread</code> flag has changed. A value of 0
now indicates that no rows should be generated, and a value of -1 indicates
there should be no limit to the number of rows generated.</p>
</li>
<li>
<p>Running <code>make install</code> after building Kudu from source will now install the
Kudu binaries into appropriate locations.
(see <a href="https://issues.apache.org/jira/browse/KUDU-1344">KUDU-1344</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_fixed_issues"><a class="link" href="#rn_1.10.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed an issue where the Java client would fail scans that took a very long
time to return a single block of rows, such as highly selective scans over a
large amount of data
(see <a href="https://issues.apache.org/jira/browse/KUDU-1868">KUDU-1868</a>).</p>
</li>
<li>
<p>Fixed the handling of SERVICE_UNAVAILABLE errors that caused the Java client
to do unnecessary master lookups.</p>
</li>
<li>
<p>Kudu scan tokens now work correctly when the target table is renamed between
when the scan token is created and when it is rehydrated into a scanner.</p>
</li>
<li>
<p>Kudu’s “NTP synchronization wait” behavior at startup now works properly when
Kudu is run in a containerized environment.</p>
</li>
<li>
<p>Fixed a crash when a flush or compaction overlapped with another compaction
(see <a href="https://issues.apache.org/jira/browse/KUDU-2807">KUDU-2807</a>).</p>
</li>
<li>
<p>Fixed a rare race at startup where the leader master would fruitlessly try to
tablet copy to a healthy follower master, causing the cluster to operate as if
it had two masters until master leadership changed
(see <a href="https://issues.apache.org/jira/browse/KUDU-2748">KUDU-2748</a>).</p>
</li>
<li>
<p>Under rare circumstances, it was possible for Kudu to crash in libkrb5 when
negotiating multiple TLS connections concurrently. This crash has been fixed
(see <a href="https://issues.apache.org/jira/browse/KUDU-2706">KUDU-2706</a>).</p>
</li>
<li>
<p>Kudu no longer crashes at startup on machines with disabled CPUs
(see <a href="https://issues.apache.org/jira/browse/KUDU-2721">KUDU-2721</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_wire_compatibility"><a class="link" href="#rn_1.10.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.10.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.10 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.9 and Kudu 1.10 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.10 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.10 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.10 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.10 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_incompatible_changes"><a class="link" href="#rn_1.10.0_incompatible_changes">Incompatible Changes in Kudu 1.10.0</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for building and running with Java 7 has been dropped in this release.
It had been deprecated since Kudu 1.5.0.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2099">KUDU-2099</a>).</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="rn_1.10.0_client_compatibility"><a class="link" href="#rn_1.10.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.10 Java client library is API- and ABI-compatible with Kudu 1.9. Applications
written against Kudu 1.9 will compile and run against the Kudu 1.10 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.10 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.9.
Applications written and compiled against the Kudu 1.9 client library will run without
modification against the Kudu 1.10 client library. Applications written and compiled
against the Kudu 1.10 client library will run without modification against the Kudu 1.9
client library.</p>
</li>
<li>
<p>The Kudu 1.10 Python client is API-compatible with Kudu 1.9. Applications
written against Kudu 1.9 will continue to run against the Kudu 1.10 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_known_issues"><a class="link" href="#rn_1.10.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.10.0_contributors"><a class="link" href="#rn_1.10.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.10 includes contributions from 27 people, including 6 first-time contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Csaba Fulop</p>
</li>
<li>
<p>Florentino Sainz</p>
</li>
<li>
<p>Guangchao Deng</p>
</li>
<li>
<p>Jia Hongchao</p>
</li>
<li>
<p>Ye Yuqiang</p>
</li>
<li>
<p>Yifan Zhang</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for your help in making Kudu even better!</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0"><a class="link" href="#rn_1.9.0">Release Notes Specific to 1.9.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_upgrade_notes"><a class="link" href="#rn_1.9.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Flume 1.8+ requires Java 8 at runtime even though the Kudu Flume integration
is Java 7 compatible. Flume 1.9 is the default dependency version as of
Kudu 1.9.0.</p>
</li>
<li>
<p>Hadoop 3.0+ requires Java 8 at runtime even though the Kudu Hadoop integration
is Java 7 compatible. Hadoop 3.2 is the default dependency version as of
Kudu 1.9.0.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_obsoletions"><a class="link" href="#rn_1.9.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_deprecations"><a class="link" href="#rn_1.9.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Java 7 has been deprecated since Kudu 1.5.0 and may be removed in
the next major release.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_new_features"><a class="link" href="#rn_1.9.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu now supports location awareness. When configured, Kudu will make a best
effort to avoid placing a majority of replicas for a given tablet at the same
location. The <code>kudu cluster rebalance</code> tool has been updated to act in
accordance with the placement policy of a location-aware Kudu. The
<a href="https://kudu.apache.org/releases/1.9.0/docs/administration.html#rack_awareness">administrative
documentation</a> has been updated to detail the usage of this feature.</p>
</li>
<li>
<p>Docker scripts have been introduced to build and run Kudu on various operating
systems. See the <code>/docker</code> subdirectory of the source repository for more
details. An <a href="https://hub.docker.com/r/apache/kudu">official repository</a> has
been created for Apache Kudu Docker artifacts.</p>
</li>
<li>
<p>Developers integrating with Kudu can now write Java tests that start a Kudu
mini cluster without having to first locally build and install Kudu. This is
made possible by the Kudu team providing platform-specific binaries available
to Gradle or Maven for download and install at test time. More information on
this feature can be found <a href="developing.html">here</a>. This binary test
artifact is currently considered to be experimental.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_improvements"><a class="link" href="#rn_1.9.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>When creating a table, the master now enforces a restriction on the total
number of replicas rather than the total number of partitions. If manually
overriding <code>--max_create_tablets_per_ts</code>, the maximum size of a new table
has effectively been cut by a factor of its replication factor. Note that
partitions can still be added after table creation.</p>
</li>
<li>
<p>The compaction policy has been updated to favor reducing the number of
rowsets. This can lead to faster scans and lower bootup times, particularly
in the face of a “trickling inserts” workload, where rows are inserted slowly
in primary key order (see
<a href="https://issues.apache.org/jira/browse/KUDU-1400">KUDU-1400</a>).</p>
</li>
<li>
<p>A tablet-level metric <code>average_diskrowset_height</code> has been added to indicate
how much a replica needs to be compacted, as indicated by the average number
of rowsets per unit of keyspace.</p>
</li>
<li>
<p>Scans which read multiple columns of tables undergoing a heavy <code>UPDATE</code>
workload are now more CPU efficient. In some cases, scan performance of such
tables may be several times faster upon upgrading to this release.</p>
</li>
<li>
<p>Kudu-Spark users can now provide the short “kudu” format alias to Spark. This
enables using <code>.format(“kudu”)</code> in places where you would have needed to
provide the fully qualified name like <code>.format(“org.apache.kudu.spark.kudu")</code>
or imported <code>org.apache.kudu.spark.kudu._</code> and used the implicit <code>.kudu</code>
functions. The
<a href="https://kudu.apache.org/releases/1.9.0/docs/developing.html#_kudu_integration_with_spark">Spark
integration documentation</a> has been updated to reflect this improvement.</p>
</li>
<li>
<p>The <code>KuduSink</code> class has been added to the Spark integration as a
<code>StreamSinkProvider</code>, allowing structured streaming writes into Kudu (see
<a href="https://issues.apache.org/jira/browse/KUDU-2640">KUDU-2640</a>).</p>
</li>
<li>
<p>The amount of server-side logging has been greatly reduced for Kudu&#8217;s
consensus implementation and background processes. This logging was determined
to be not useful and unnecessarily verbose.</p>
</li>
<li>
<p>The web UI now more obviously depicts which columns are a part of the primary
key (see <a href="https://issues.apache.org/jira/browse/KUDU-2477">KUDU-2477</a>).</p>
</li>
<li>
<p>The <code>kudu table describe</code> tool has been added to support describing table
attributes, including schema, partitioning, replication factor, column
encodings, compressions, and default values.</p>
</li>
<li>
<p>The <code>kudu table scan</code> tool has been added to scan rows from a table,
supporting comparison, in-list, and is-null predicates.</p>
</li>
<li>
<p>The <code>kudu locate_row</code> tool has been added to allow users to determine what
tablet a given primary key belongs to, and whether a row exists for that
primary key.</p>
</li>
<li>
<p>The <code>kudu diagnose dump_mem_trackers</code> tool is added to allow users to output
the contents of the <code>/mem-trackers</code> web UI page in a CSV format.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_fixed_issues"><a class="link" href="#rn_1.9.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>To avoid glitches and undefined behavior, the Kudu Python client now
detects and reports on conflicting/incorrect initialization of the OpenSSL
library.</p>
</li>
<li>
<p>Fixed a crash caused by a race between altering tablet schemas and deleting
tablet replicas (see
<a href="https://issues.apache.org/jira/browse/KUDU-1678">KUDU-1678</a>).</p>
</li>
<li>
<p>Fixed an issue that would prevent the <code>kudu fs update_dirs</code> tool from
removing directories in the presence of tablet tombstones (see
<a href="https://issues.apache.org/jira/browse/KUDU-2680">KUDU-2680</a>).</p>
</li>
<li>
<p>The <code>--cmeta_force_fsync</code> flag may be used to fsync Kudu&#8217;s consensus
metadata more aggressively. Setting this to <code>true</code> may decrease Kudu&#8217;s
performance, but improve its durability in the face of power failures and
forced shutdowns (see
<a href="https://issues.apache.org/jira/browse/KUDU-2195">KUDU-2195</a>).</p>
</li>
<li>
<p>Fixed an issue that would cause an excessive amount of RPC traffic from Kudu
masters if the tablet servers were configured with duplicated master addresses
(see <a href="https://issues.apache.org/jira/browse/KUDU-2684">KUDU-2684</a>).</p>
</li>
<li>
<p>Fixed an issue that would cause the <code>kudu cluster rebalance</code> tool to run
indefinitely in the case of tables with a replication factor of 2 (see
<a href="https://issues.apache.org/jira/browse/KUDU-2688">KUDU-2688</a>).</p>
</li>
<li>
<p>Fixed an issue that could lead to a failure to bootstrap tablet replicas
that were a part of workloads with many alter table operations
(see <a href="https://issues.apache.org/jira/browse/KUDU-2690">KUDU-2690</a>).</p>
</li>
<li>
<p>Fixed an issue with the Java scanner&#8217;s <code>keepAlive</code> that could lead to a
permanent hang in the scanner (see
<a href="https://issues.apache.org/jira/browse/KUDU-2710">KUDU-2710</a>).</p>
</li>
<li>
<p>Fixed an issue that would cause undefined behavior upon connecting to a
secure cluster concurrently from multiple C++ clients (see
<a href="https://issues.apache.org/jira/browse/KUDU-2706">KUDU-2706</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_wire_compatibility"><a class="link" href="#rn_1.9.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.9.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.9 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.8 and Kudu 1.9 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.9 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.9 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.9 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.9 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_incompatible_changes"><a class="link" href="#rn_1.9.0_incompatible_changes">Incompatible Changes in Kudu 1.9.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.9.0_client_compatibility"><a class="link" href="#rn_1.9.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.9 Java client library is API- and ABI-compatible with Kudu 1.8. Applications
written against Kudu 1.8 will compile and run against the Kudu 1.9 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.9 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.8.
Applications written and compiled against the Kudu 1.8 client library will run without
modification against the Kudu 1.9 client library. Applications written and compiled
against the Kudu 1.9 client library will run without modification against the Kudu 1.8
client library.</p>
</li>
<li>
<p>The Kudu 1.9 Python client is API-compatible with Kudu 1.8. Applications
written against Kudu 1.8 will continue to run against the Kudu 1.9 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_known_issues"><a class="link" href="#rn_1.9.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.9.0_contributors"><a class="link" href="#rn_1.9.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.9 includes contributions from 24 people, including 5 first-time contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Bankim Bhavsar</p>
</li>
<li>
<p>Mike Parker</p>
</li>
<li>
<p>Mitch Barnett</p>
</li>
<li>
<p>Tim Armstrong</p>
</li>
<li>
<p>Yingchun Lai</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for your help in making Kudu even better!</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0"><a class="link" href="#rn_1.8.0">Release Notes Specific to 1.8.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_upgrade_notes"><a class="link" href="#rn_1.8.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Upgrading directly from Kudu 1.7.0 is supported and no special upgrade steps are
required. A rolling upgrade may work, however it has not been tested. When upgrading
Kudu, it is recommended to first shut down all Kudu processes across the cluster, then
upgrade the software on all servers, then restart the Kudu processes on all servers in
the cluster.</p>
</li>
<li>
<p>Kudu Flume Sink released with Kudu 1.8.0 is compiled against Apache Flume 1.8 and might
not function with earlier versions of Flume. Note that Flume 1.8 requires Java 1.8 or
higher.</p>
</li>
<li>
<p>Hadoop 3.0+ requires Java 8 at runtime even though the Kudu Hadoop integration is Java 7
compatible. Hadoop 3.1 is the default dependency version as of Kudu 1.8.0, used by
certain features in the Java client.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_obsoletions"><a class="link" href="#rn_1.8.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The <code>-table_num_buckets</code> configuration option of the <code>kudu perf loadgen</code> tool is now
removed in favor of <code>-table_num_hash_partitions</code> and <code>-table_num_range_partitions</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-1861">KUDU-1861</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_deprecations"><a class="link" href="#rn_1.8.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Java 7 has been deprecated since Kudu 1.5.0 and may be removed in the next
major release.</p>
</li>
<li>
<p>The <code>producer.skipMissingColumn</code>, <code>producer.skipBadColumnValue</code>, and
<code>producer.warnUnmatchedRows</code> Kudu Flume sink configuration parameters have been
deprecated in favor of <code>producer.missingColumnPolicy</code>, <code>producer.badColumnValuePolicy</code>,
and <code>producer.unmatchedRowPolicy</code> respectively (see
<a href="https://issues.apache.org/jira/browse/KUDU-1882">KUDU-1882</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_new_features"><a class="link" href="#rn_1.8.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Examples showcasing functionality in C&#43;&#43;, Java, and Python, previously
hosted in a separate repository have been added. They can be found in the
<code><a href="https://github.com/apache/kudu/tree/master/examples">examples/</a></code>
top-level subdirectory.</p>
</li>
<li>
<p>Added <code>kudu diagnose parse_stacks</code>, a tool to parse sampled stack traces out of a
diagnostics log (see <a href="https://issues.apache.org/jira/browse/KUDU-2353">KUDU-2353</a>).</p>
</li>
<li>
<p>Added support for <code>IS NULL</code> and <code>IS NOT NULL</code> predicates to the Kudu Python client (see
<a href="https://issues.apache.org/jira/browse/KUDU-2399">KUDU-2399</a>).</p>
</li>
<li>
<p>Introduced <a href="administration.html#rebalancer_tool">manual data rebalancer</a> into the kudu
CLI tool. The rebalancer can be used to redistribute table replicas among tablet
servers. The rebalancer can be run via <code>kudu cluster rebalance</code> sub-command. Using the
new tool, it&#8217;s possible to rebalance Kudu clusters of version 1.4.0 and newer.</p>
</li>
<li>
<p>Added <code>kudu tserver get_flags</code> and <code>kudu master get_flags</code>, two tools that allow
superusers to retrieve all the values of command line flags from remote Kudu processes.
The <code>get_flags</code> tools support filtering the returned flags by tag, and by default will
return only flags that were explicitly set.</p>
</li>
<li>
<p>Added <code>kudu tablet unsafe_replace_tablet</code>, a tool to replace a tablet with a new one.
This tool is meant to be used to recover a table when one of its tablets has permanently
lost all replicas. The data in the tablet that is replaced is lost, so this tool should
only be used as a last resort (see
<a href="https://issues.apache.org/jira/browse/KUDU-2290">KUDU-2290</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_improvements"><a class="link" href="#rn_1.8.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>There is a new metric for each tablet replica tracking the number of election failures
since the last successful election attempt and the time since the last heartbeat from
the leader (see <a href="https://issues.apache.org/jira/browse/KUDU-2287">KUDU-2287</a>).</p>
</li>
<li>
<p>Kudu now supports building and running on Ubuntu 18.04 (“Bionic Beaver”) (see
<a href="https://issues.apache.org/jira/browse/KUDU-2427">KUDU-2427</a>).</p>
</li>
<li>
<p>Kudu now supports building and running against OpenSSL 1.1 (see
<a href="https://issues.apache.org/jira/browse/KUDU-1889">KUDU-1889</a>).</p>
</li>
<li>
<p>Added Kerberos support to the Kudu Flume sink (see
<a href="https://issues.apache.org/jira/browse/KUDU-2012">KUDU-2012</a>).</p>
</li>
<li>
<p>The Kudu Spark connector now supports Spark Streaming DataFrames (see
<a href="https://issues.apache.org/jira/browse/KUDU-2539">KUDU-2539</a>).</p>
</li>
<li>
<p>Added <code>-tables</code> filtering argument to <code>kudu table list</code> (see
<a href="https://issues.apache.org/jira/browse/KUDU-2529">KUDU-2529</a>).</p>
</li>
<li>
<p>Clients now support setting a limit on the number of returned rows in scans (see
<a href="https://issues.apache.org/jira/browse/KUDU-16">KUDU-16</a>).</p>
</li>
<li>
<p>Added Pandas support to the Python client (see
<a href="https://issues.apache.org/jira/browse/KUDU-1276">KUDU-1276</a>).</p>
</li>
<li>
<p>Enabled configuration of mutation buffer in the Python client (see
<a href="https://issues.apache.org/jira/browse/KUDU-2441">KUDU-2441</a>).</p>
</li>
<li>
<p>Added a <code>keepAlive</code> API call to the <code>KuduScanner</code> and <code>AsyncKuduScanner</code> in the Java
client.  This API can be used to keep the scanners alive on the server when processing
of messages will take longer than the scanner TTL (see
<a href="https://issues.apache.org/jira/browse/KUDU-2095">KUDU-2095</a>).</p>
</li>
<li>
<p>The Kudu Spark integration now uses the keepAlive API when reading data. By default it
will call keepAlive on a scanner with a period of 15 seconds. This will ensure that
Spark jobs with large batch sizes or slow processing times do not fail with scanner not
found errors (see <a href="https://issues.apache.org/jira/browse/KUDU-2563">KUDU-2563</a>).</p>
</li>
<li>
<p>Number of reactor threads in the C&#43;&#43; client is now configurable (see
<a href="https://issues.apache.org/jira/browse/KUDU-2368">KUDU-2368</a>).</p>
</li>
<li>
<p>Added an optimization to reduce CPU consumption when performing hot metadata lookups in
the C&#43;&#43; client (see <a href="https://issues.apache.org/jira/browse/KUDU-1977">KUDU-1977</a>).</p>
</li>
<li>
<p>Added an optimization to avoid bottlenecks on <code>getpwuid_r()</code> in libnss during a Raft
leader election storm (see
<a href="https://issues.apache.org/jira/browse/KUDU-2395">KUDU-2395</a>).</p>
</li>
<li>
<p>Improved rowset tree pruning making scans with open-ended intervals on primary key (see
<a href="https://issues.apache.org/jira/browse/KUDU-2566">KUDU-2566</a>).</p>
</li>
<li>
<p>The <code>kudu perf loadgen</code> tool now supports generating range-partitioned tables. The
<code>-table_num_buckets</code> configuration is now removed in favor of
<code>-table_num_hash_partitions</code> and <code>-table_num_range_partitions</code> (see
<a href="https://issues.apache.org/jira/browse/KUDU-1861">KUDU-1861</a>).</p>
</li>
<li>
<p>CFile checksum failures will now cause the affected tablet replicas to be failed and
re-replicated elsewhere (see
<a href="https://issues.apache.org/jira/browse/KUDU-2469">KUDU-2469</a>).</p>
</li>
<li>
<p>Servers are now able to start up with data directories missing on disk (see
<a href="https://issues.apache.org/jira/browse/KUDU-2359">KUDU-2359</a>).</p>
</li>
<li>
<p>The <code>kudu perf loadgen</code> tool now creates tables with a period-separated database name,
for example <code>default.loadgen_auto_abc123</code>. This new behavior does not take effect if the
<code>--table</code> flag is provided. The database of the table can be changed using a new
<code>--auto_database</code> flag. This change is made in anticipation of an eventual Kudu/HMS
integration (see <a href="https://jira.apache.org/jira/browse/KUDU-2191">KUDU-2191</a>).</p>
</li>
<li>
<p>Introduced <code>FAILED_UNRECOVERABLE</code> replica health status. This is to mark replicas which
are not able to catch up with the leader due to GC-collected segments of WAL and other
unrecoverable cases like disk failure. With that, the replica management scheme becomes
hybrid: the system evicts replicas with <code>FAILED_UNRECOVERABLE</code> health status before
adding a replacement if it anticipates that it can commit the transaction, while in
other cases it first adds a non-voter replica and removes the failed one only after
promoting a newly added replica to voter role.</p>
</li>
<li>
<p>Two additional configuration parameters, <code>socketReadTimeoutMs</code>  and <code>scanRequestTimeout</code>
have been added to the Spark connector to allow better tuning to avoid scan timeouts
under high load.</p>
</li>
<li>
<p>The <code>kudu table</code> tool now supports two new options to rename tables and columns,
<code>rename_table</code> and <code>rename_column</code> respectively.</p>
</li>
<li>
<p>Kudu will now wait for the clock to become synchronized at startup, controlled by a new
flag <code>-ntp_initial_sync_wait_secs</code> (see
<a href="https://issues.apache.org/jira/browse/KUDU-2242">KUDU-2242</a>).</p>
</li>
<li>
<p>Tablet deletions are now throttled, which will help Kudu clusters remain stable even
when many tablets are deleted at once. The number of tablets that a tablet server will
delete at once is controlled by the new flag <code>-num_tablets_to_delete_simultaneously</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-2289">KUDU-2289</a>).</p>
</li>
<li>
<p>The <code>kudu cluster ksck</code> tool has been significantly enhanced. It now checks master
health and consensus status, displays any unsafe or hidden flags set in the cluster, and
produces a summary of the Kudu versions running on the master and tablet servers. In
addition, it now supports JSON output, both in pretty-printed and compact form. The
output format is controlled by the <code>-ksck_format</code> flag.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_fixed_issues"><a class="link" href="#rn_1.8.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>When a tablet server was wiped and recreated with the same RPC address, <code>ksck</code> listed it
twice, both as healthy, even though only one of them was there. This bug is now fixed by
verifying the UUID of the server (see
<a href="https://issues.apache.org/jira/browse/KUDU-2364">KUDU-2364</a>).</p>
</li>
<li>
<p>Fixed an issue preventing Kudu from starting when using Vormetric&#8217;s encrypted filesystem
(secfs2) on ext4 (see <a href="https://issues.apache.org/jira/browse/KUDU-2406">KUDU-2406</a>).</p>
</li>
<li>
<p>Fixed an issue where Kudu&#8217;s block cache memory tracking (as seen on the <code>/mem-trackers</code>
web UI page) wasn’t accounting for all of the overhead of the cache itself (see
<a href="https://issues.apache.org/jira/browse/KUDU-972">KUDU-972</a>).</p>
</li>
<li>
<p>Fixed an issue where the C&#43;&#43; client would fail to reopen an expired scanner; instead,
the client would retry in a tight loop and eventually timeout (see
<a href="https://issues.apache.org/jira/browse/KUDU-2414">KUDU-2414</a>).</p>
</li>
<li>
<p>When a tablet is deleted, its write-ahead log recovery directory is also deleted, if it
exists (see <a href="https://issues.apache.org/jira/browse/KUDU-1038">KUDU-1038</a>).</p>
</li>
<li>
<p>Fixed a tablet server crash when a tablet is scanned with two predicates on its primary
key and the predicates do not overlap (see
<a href="https://issues.apache.org/jira/browse/KUDU-2447">KUDU-2447</a>).</p>
</li>
<li>
<p>Fixed an issue where the Kudu MapReduce connector&#8217;s <code>KuduTableInputFormat</code> may exhaust
its scan too early (see
<a href="https://issues.apache.org/jira/browse/KUDU-2525">KUDU-2525</a>).</p>
</li>
<li>
<p>Fixed an issue with failed tablet copies that would cause subsequent tablet copies to
crash the tablet server (see
<a href="https://issues.apache.org/jira/browse/KUDU-2293">KUDU-2293</a>).</p>
</li>
<li>
<p>Fixed a bug in which incorrect results would be returned in scans following a
server restart (see
<a href="https://issues.apache.org/jira/browse/KUDU-2463">KUDU-2463</a>).</p>
</li>
<li>
<p>Fixed a bug causing a tablet server crash when a write batch request from a client
failed coarse-grained authorization (see
<a href="https://issues.apache.org/jira/browse/KUDU-2540">KUDU-2540</a>).</p>
</li>
<li>
<p>Fixed use-after-free in case of WAL replay error (see
<a href="https://issues.apache.org/jira/browse/KUDU-2509">KUDU-2509</a>).</p>
</li>
<li>
<p>Fixed authentication token reacquisition in the C&#43;&#43; client (see
<a href="https://issues.apache.org/jira/browse/KUDU-2580">KUDU-2580</a>).</p>
</li>
<li>
<p>Fixed a bug where leader logged excessively when the followers fell behind (see
<a href="https://issues.apache.org/jira/browse/KUDU-2322">KUDU-2322</a>).</p>
</li>
<li>
<p>Fixed reporting of leader health during lifecycle transitions (see
<a href="https://issues.apache.org/jira/browse/KUDU-2335">KUDU-2335</a>).</p>
</li>
<li>
<p>Fixed moving single-replica tablets (see
<a href="https://issues.apache.org/jira/browse/KUDU-2443">KUDU-2443</a>).</p>
</li>
<li>
<p>Fixed an error that would cause the kudu CLI tool to unexpectedly exit when the
connection to the master or tserver was abruptly closed.</p>
</li>
<li>
<p>Fixed a rare issue where system failure could leave unexpected null bytes at the end of
metadata files, causing Kudu to be unable to restart (see
<a href="https://issues.apache.org/jira/browse/KUDU-2260">KUDU-2260</a>).</p>
</li>
<li>
<p>Fixed an issue where <code>kudu cluster ksck</code> running a snapshot checksum scan would use a
single snapshot timestamp for all tablets. This caused the checksum process to fail if
the checksum process took a long time and the number of tablets was sufficiently large.
The tool should now be able to checksum tables even if the process takes many hours.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2179">KUDU-2179</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_wire_compatibility"><a class="link" href="#rn_1.8.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.8.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.8 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.8 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations on wire
compatibility between Kudu 1.8 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.8 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.8 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_incompatible_changes"><a class="link" href="#rn_1.8.0_incompatible_changes">Incompatible Changes in Kudu 1.8.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.8.0_client_compatibility"><a class="link" href="#rn_1.8.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.8 Java client library is API- and ABI-compatible with Kudu 1.7. Applications
written against Kudu 1.7 will compile and run against the Kudu 1.8 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.8 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.7.
Applications written and compiled against the Kudu 1.7 client library will run without
modification against the Kudu 1.8 client library. Applications written and compiled
against the Kudu 1.8 client library will run without modification against the Kudu 1.7
client library.</p>
</li>
<li>
<p>The Kudu 1.8 Python client is API-compatible with Kudu 1.7. Applications written against
Kudu 1.7 will continue to run against the Kudu 1.8 client and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_known_issues"><a class="link" href="#rn_1.8.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Please refer to the <a href="known_issues.html">Known Issues and Limitations</a> section of the
documentation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.8.0_contributors"><a class="link" href="#rn_1.8.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.8 includes contributions from 40 people, including 15 first-time contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Anupama Gupta</p>
</li>
<li>
<p>Attila Piros</p>
</li>
<li>
<p>Brian McDevitt</p>
</li>
<li>
<p>Fengling Wang</p>
</li>
<li>
<p>Ferenc Szabó</p>
</li>
<li>
<p>Greg Solovyev</p>
</li>
<li>
<p>Kiyoshi Mizumaru</p>
</li>
<li>
<p>Shriya Gupta</p>
</li>
<li>
<p>Thomas Tauber-Marshall</p>
</li>
<li>
<p>Tigerquoll</p>
</li>
<li>
<p>Yao Xu</p>
</li>
<li>
<p>ZhangYao</p>
</li>
<li>
<p>helifu</p>
</li>
<li>
<p>jinxing64</p>
</li>
<li>
<p>qqchang2nd</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Thank you for helping to make Kudu even better!</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.1"><a class="link" href="#rn_1.7.1">Release Notes Specific to 1.7.1</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.1_fixed_issues"><a class="link" href="#rn_1.7.1_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Apache Kudu 1.7.1 is a bug-fix release which fixes critical issues in Kudu 1.7.0.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Fixed and issue where a leader replica could report a follower&#8217;s health status
as FAILED instead of FAILED_UNRECOVERABLE. In configurations where the tablet
replication factor equals to the total number of tablet servers in the cluster,
that lead to situations where the tablet could not be automatically recovered
until a new leader was elected or corresponding tablet servers were restarted.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2367">KUDU-2367</a>).</p>
</li>
<li>
<p>Fixed an issue where Kudu would fail to start if RLIMIT_NPROC was set to -1.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2377">KUDU-2377</a>).</p>
</li>
<li>
<p>Fixed an issue where <code>kudu-spark</code> was unable to connect to secure clusters.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2379">KUDU-2379</a>).</p>
</li>
<li>
<p>Fixed an issue where the <code>kudu-python</code> client would not compile in environments
where <code>__int128</code> is not supported. This was most commonly el6 environments.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2412">KUDU-2412</a>).</p>
</li>
<li>
<p>Fixed an issue where unaligned loads of <code>__int128</code> integers could result
in a crash.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2378">KUDU-2378</a>).</p>
</li>
<li>
<p>Fixed a bug in <code>PartialRow.setMin</code> that could lead to incorrect partition
pruning when a <code>decimal</code> column is part of the tables range partition but
not a part of the query predicate.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2416">KUDU-2416</a>).</p>
</li>
<li>
<p>Fixed an equality check on <code>decimal</code> column predicates that could result
in pruning that is too conservative.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.0"><a class="link" href="#rn_1.7.0">Release notes specific to 1.7.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.0_upgrade_notes"><a class="link" href="#rn_1.7.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Upgrading directly from Kudu 1.6.0 is supported and no special upgrade steps
are required. A rolling upgrade of the server side will <em>not</em> work because
the default replica management scheme changed, and running masters and tablet
servers with different replica management schemes is not supported, see
<a href="#rn_1.7.0_incompatible_changes">Incompatible Changes in Kudu 1.7.0</a> for details. However, mixing client and
server sides of different versions is not a problem. You can still
update your clients before your servers or vice versa.
When upgrading to Kudu 1.7, it is required to first shut down all Kudu processes
across the cluster, then upgrade the software on all servers, then restart
the Kudu processes on all servers in the cluster.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.0_obsoletions"><a class="link" href="#rn_1.7.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The <code>tcmalloc_contention_time</code> metric, which previously tracked the amount
of time spent in memory allocator lock contention, has been removed.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.0_deprecations"><a class="link" href="#rn_1.7.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Java 7 has been deprecated since Kudu 1.5.0 and may be removed in
the next major release.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.0_new_features"><a class="link" href="#rn_1.7.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu now supports the decimal column type. The decimal type is a numeric data type
with fixed scale and precision suitable for financial and other arithmetic
calculations where the imprecise representation and rounding behavior of float and
double make those types impractical. The decimal type is also useful for integers
larger than int64 and cases with fractional values in a primary key.
See <a href="schema_design.html#decimal">Decimal Type</a> for more details.</p>
</li>
<li>
<p>The strategy Kudu uses for automatically healing tablets which have lost a
replica due to server or disk failures has been improved. The new re-replication
strategy, or replica management scheme, first adds a replacement tablet replica
before evicting the failed one. With the previous replica management scheme,
the system first evicts the failed replica and then adds a replacement. The new
replica management scheme allows for much faster recovery of tablets in
scenarios where one tablet server goes down and then returns back shortly after
5 minutes or so. The new scheme also provides substantially better overall
stability on clusters with frequent server failures.
(see <a href="https://issues.apache.org/jira/browse/KUDU-1097">KUDU-1097</a>).</p>
</li>
<li>
<p>The <code>kudu fs update_dirs</code> tool now supports removing directories. Unless the
<code>--force</code> flag is specified, Kudu will not allow the removal of a directory
across which tablets are configured to spread data. If specified, all tablet
replicas configured to use that directory will fail upon starting up and be
replicated elsewhere, provided a majority exists elsewhere.</p>
</li>
<li>
<p>Users can use the new <code>--fs_metadata_dir</code> to specify the directory in which
to place tablet-specific metadata. It is recommended, although not
necessary, that this be placed on a high-performance drive with high
bandwidth and low latency, e.g. a solid-state drive. If not specified,
metadata will be placed in the directory specified by <code>--fs_wal_dir</code>, or in
the directory specified by the first entry of <code>--fs_data_dirs</code> if metadata
already exists there from a pre-Kudu 1.7 deployment. Kudu will not
automatically move existing metadata based on this configuration.</p>
</li>
<li>
<p>Kudu 1.7 introduces a new scan read mode READ_YOUR_WRITES. Users can specify
READ_YOUR_WRITES when creating a new scanner in C++, Java and Python clients.
If this mode is used, the client will perform a read such that it follows all
previously known writes and reads from this client. Reads in this mode ensure
read-your-writes and read-your-reads session guarantees, while minimizing
latency caused by waiting for outstanding write transactions to complete.
Note that this is still an experimental feature which may be stabilized in
future releases.</p>
</li>
<li>
<p>The tablet server web UI scans dashboard (/scans) has been improved with
several new features, including: showing the most recently completed scans,
a pseudo-SQL scan descriptor that concisely shows the selected columns and
applied predicates, and more complete and better documented scan statistics.</p>
</li>
<li>
<p>Kudu daemons now expose a web page <code>/stacks</code> which dumps the current stack
trace of every thread running in the server. This information can be helpful
when diagnosing performance issues.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_optimizations_and_improvements"><a class="link" href="#_optimizations_and_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>By default, each tablet replica will now stripe data blocks across 3 data
directories instead of all data directories. This decreases the likelihood
that any given tablet will be affected in the event of a single disk failure.
No substantial performance impact is expected due to this feature based on
<a href="https://github.com/apache/kudu/commit/60276c54a221d554287c6645df7df542fe6d6443">performance testing</a>.
This change only affects new replicas created after upgrading to Kudu 1.7.</p>
</li>
<li>
<p>Kudu servers previously offered the ability to enable a separate metrics log
which stores periodic snapshots of all metrics available on a server. This
functionality is now available as part of a more general “diagnostics log”
which is enabled by default. The diagnostics log includes periodic dumps of
server metrics as well as collections of thread stack traces. The default
configuration ensures that no more than 640MB of diagnostics logs are retained,
and typically the space consumption is significantly less due to compression.
The format and contents of this log file are documented in the
<a href="administration.html">Administration guide</a>.</p>
</li>
<li>
<p>The handling of errors in the synchronous Java client has been improved so that,
when an exception is thrown, the stack trace indicates the correct location
where the client function was invoked rather than a call stack of an internal
worker thread. The original call stack from the worker thread is available as
a “suppressed exception”.</p>
</li>
<li>
<p>The logging of errors in the Java client has been improved to exclude exception
stack traces for expected scenarios such as failure to connect to a server in a
cluster. Instead, only a single line informational message will be logged in
such cases to aid in debugging.</p>
</li>
<li>
<p>The Java client now uses a predefined prioritized list of TLS ciphers when
establishing an encrypted connection to Kudu servers. This cipher list matches
the list of ciphers preferred for server-to-server communication and ensures
that the most efficient and secure ciphers are preferred. When the Kudu client
is running on Java 8 or newer, this provides a substantial speed-up to read
and write performance.</p>
</li>
<li>
<p>Reporting for the <code>kudu cluster ksck</code> tool has been updated so tablets and
tables with on-going tablet copies are shown as "recovering". Additional
reporting changes have been made to make various common scenarios,
particularly tablet copies, less alarming.</p>
</li>
<li>
<p>The performance of inserting rows containing many string or binary columns has
been improved, especially in the case of highly concurrent write workloads.</p>
</li>
<li>
<p>By default, Spark tasks that scan Kudu will now be able to scan non-leader
replicas. This allows Spark to more easily schedule kudu-spark tasks local to
the data. Users can disable this behavior by passing 'leader_only' to the
'kudu.scanLocality' option."</p>
</li>
<li>
<p>The number of OS threads used in the steady state and during bursts of
activity (such as in Raft leader elections triggered by a node failure) has
been drastically reduced and should no longer exceed the value of <code>ulimit -u</code>.
As such, it should no longer be necessary to increase the value of <code>ulimit -u</code>
(or of /proc/sys/kernel/threads-max) in order to run a Kudu tablet server in
most cases.
(see <a href="https://issues.apache.org/jira/browse/KUDU-1913">KUDU-1913</a>).</p>
</li>
<li>
<p>An issue where sparse column predicates could cause excessive data-block reads
has been fixed. Previously in certain scans with sparsely matching predicates
on multiple columns, Kudu would read and decode the same data blocks many times.
The improvement typically results in a 5-10x performance increase for the
affected scans.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2231">KUDU-2231</a>).</p>
</li>
<li>
<p>The efficiency and on-disk size of large updated values has been improved.
This will improve update-heavy workloads which overwrite large (1KiB+) values.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2253">KUDU-2253</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.0_fixed_issues"><a class="link" href="#rn_1.7.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed a scenario where the on-disk data of a tablet server was completely
erased and and a new tablet server was started on the same host. This issue
could prevent tablet replicas previously hosted on the server from being
evicted and re-replicated.
Tablets now immediately evict replicas that respond with a different server
UUID than expected.
(see <a href="https://issues.apache.org/jira/browse/KUDU-1613">KUDU-1613</a>).</p>
</li>
<li>
<p>Fixed a rare race condition when connecting to masters during their
startup which might cause a client to get a response without a CA certificate
and/or authentication token. This would cause the client to fail to authenticate
with other servers in the cluster. The leader master now always sends a CA
certificate and an authentication token (when applicable) to a Kudu client
with a successful ConnectToMaster response.
(see <a href="https://issues.apache.org/jira/browse/KUDU-1927">KUDU-1927</a>).</p>
</li>
<li>
<p>The Kudu Java client now will retry a connection if no master is discovered as a
leader, and the user has a valid authentication token. This avoids failure
in recoverable cases when masters are in the process of the very first leader
election after starting up.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2262">KUDU-2262</a>).</p>
</li>
<li>
<p>The Java client will now automatically attempt to re-acquire Kerberos
credentials from the ticket cache when the prior credentials are about to
expire. This allows client instances to persist longer than the expiration
time of a single Kerberos ticket so long as some other process renews the
credentials in the ticket cache. Documentation on interacting with Kerberos
authentication has been added to the Javadoc for the <code>AsyncKuduClient</code> class.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2264">KUDU-2264</a>).</p>
</li>
<li>
<p>Follower masters are now able to verify authentication tokens even if they have never
been a leader. Prior to this fix, if a follower master had never been a leader,
clients would be unable to authenticate to that master, resulting in spurious
error messages being logged.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2265">KUDU-2265</a>).</p>
</li>
<li>
<p>Fixed a tablet server crash when a tablet replica is deleted during a scan.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2295">KUDU-2295</a>).</p>
</li>
<li>
<p>The evaluation order of predicates in scans with multiple predicates has been
made deterministic. Due to a bug, this was not necessarily the case previously.
Predicates are applied in most to least selective order, with ties broken by
column index. The evaluation order may change in the future, particularly when
better column statistics are made available internally.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2312">KUDU-2312</a>).</p>
</li>
<li>
<p>Previously, the <code>kudu tablet change_config move_replica</code> tool required all
tablet servers in the cluster to be available when performing a move. This
restriction has been relaxed: only the tablet server that will receive a replica
of the tablet being moved and the hosts of the tablet&#8217;s existing replicas need to be
available for the move to occur.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2331">KUDU-2331</a>).</p>
</li>
<li>
<p>Fixed a bug in the Java client which prevented the client from locating the
new leader master after a leader failover in the case that the previous leader
either remained online or restarted quickly. This bug resulted in the client
timing out operations with errors indicating that there was no leader master.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2343">KUDU-2343</a>).</p>
</li>
<li>
<p>The Unix process username of the client is now included inside the exported
security credentials, so that the effective username of clients who import
credentials and subsequently use unauthenticated (SASL PLAIN) connections
matches the client who exported the security credentials. For example, this is
useful to let the Spark executors know which username to use if the Spark
driver has no authentication token. This change only affects clusters with
encryption disabled using <code>--rpc_encryption=disabled</code>.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2259">KUDU-2259</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.0_wire_compatibility"><a class="link" href="#rn_1.7.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.7.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.7 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.6 and Kudu 1.7 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.7 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.7 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.7 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.7 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.7.0_incompatible_changes"><a class="link" href="#rn_1.7.0_incompatible_changes">Incompatible Changes in Kudu 1.7.0</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The newly introduced replica management scheme is not compatible with the
old scheme, so it&#8217;s not possible to run pre-1.7 Kudu masters with
1.7 Kudu tablet servers or vice versa. This is a server-side
incompatibility only and it does not affect client compatibility. In other words,
Kudu clients of prior versions are compatible with upgraded Kudu clusters.</p>
<div class="ulist">
<ul>
<li>
<p>Kudu masters of 1.7 version will not register Kudu tablet servers of 1.6
and prior versions.</p>
</li>
<li>
<p>Kudu tablet servers of 1.7 version will not work with Kudu masters of 1.6
and prior versions.</p>
</li>
</ul>
</div>
</li>
<li>
<p>The format of the previously-optional metrics log has changed to include a
human-readable timestamp on each line. The path of the log file has also
changed with the word “diagnostics” replacing the word “metrics” in the file
name. The metrics log has been optimized to only include those metrics which
have changed in between successive samples, and to not include entity attributes
such as tablet partition information in the log.
(see <a href="https://issues.apache.org/jira/browse/KUDU-2297">KUDU-2297</a>).</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="rn_1.7.0_client_compatibility"><a class="link" href="#rn_1.7.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.7 Java client library is API- and ABI-compatible with Kudu 1.6. Applications
written against Kudu 1.6 will compile and run against the Kudu 1.7 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.7 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.6.
Applications written and compiled against the Kudu 1.6 client library will run without
modification against the Kudu 1.7 client library. Applications written and compiled
against the Kudu 1.7 client library will run without modification against the Kudu 1.6
client library.</p>
</li>
<li>
<p>The Kudu 1.7 Python client is API-compatible with Kudu 1.6. Applications
written against Kudu 1.6 will continue to run against the Kudu 1.7 client
and vice-versa.</p>
</li>
<li>
<p>Kudu 1.7 clients that attempt to create a table with a decimal column on a
target server running Kudu 1.6 or earlier will receive an error response.
Similarly Kudu clients running Kudu 1.6 or earlier will result in an error
when attempting to access any table containing containing a decimal
column.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.6.0"><a class="link" href="#rn_1.6.0">Release Notes Specific to 1.6.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.6.0_upgrade_notes"><a class="link" href="#rn_1.6.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Upgrading directly from Kudu 1.5.0 is supported and no special upgrade steps
are required. A rolling upgrade may work, however it has not been tested.
When upgrading Kudu, it is recommended to first shut down all Kudu processes
across the cluster, then upgrade the software on all servers, then restart
the Kudu processes on all servers in the cluster.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.6.0_obsoletions"><a class="link" href="#rn_1.6.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Spark 1 (kudu-spark_2.10) has been <strong>removed</strong> in Kudu 1.6.0 and
now only Spark 2 is supported. Spark 1 support was deprecated in Kudu 1.5.0.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.6.0_deprecations"><a class="link" href="#rn_1.6.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Java 7 has been deprecated since Kudu 1.5.0 and may be removed in
the next major release.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.6.0_new_features"><a class="link" href="#rn_1.6.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Tablet servers' tolerance of disk failures is now enabled by default and has
been extended to handle data directory failures at runtime. In the event of
a disk failure at runtime, any tablets with data on a failed disk will be
shut down and restarted on another tablet server. There is a configurable
tradeoff between a newly added tablet&#8217;s tolerance to disk failures and its
ability to parallelize reads via the experimental
<code>--fs_target_data_dirs_per_tablet</code> flag. Tablets that are spread across fewer
disks are less likely to be affected by a disk failure, at the cost of
reduced parallelism. By default, tablets are striped across all available
disks. Note that the first configured data directory and the WAL directory
cannot currently tolerate disk failures. This will be further improved in
future Kudu releases.</p>
</li>
<li>
<p>Kudu servers can now adopt new data directories via the new
<code>kudu fs update_dirs</code> tool. The new directory will be used by new tablet
replicas only. Note that removing directories is not yet supported
(see <a href="https://issues.apache.org/jira/browse/KUDU-2202">KUDU-2202</a>).</p>
</li>
<li>
<p>Kudu servers have two new flags to control webui TLS/HTTPS
settings: <code>--webserver_tls_ciphers</code> and <code>--webserver_tls_min_protocol</code>.
These flags allow the advertised TLS ciphers and TLS protocol versions to be
configured. Additionally, the webserver now excludes insecure legacy ciphers
by default
(see <a href="https://issues.apache.org/jira/browse/KUDU-2190">KUDU-2190</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_optimizations_and_improvements_2"><a class="link" href="#_optimizations_and_improvements_2">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu servers can now tolerate short interruptions in NTP clock
synchronization. NTP synchronization is still required when any Kudu daemon
starts up. If NTP synchronization is not available, diagnostic information
is now logged to help pinpoint the issue
(see <a href="https://issues.apache.org/jira/browse/KUDU-1578">KUDU-1578</a>).</p>
</li>
<li>
<p>Tablet server startup time has been improved significantly on servers
containing large numbers of blocks.</p>
</li>
<li>
<p>The log block manager now performs disk data deletion in batches. This
optimization can significantly reduce the time taken to delete data on a tablet.</p>
</li>
<li>
<p>The usage of sensitive data redaction flag has been slightly changed. By
setting <code>--redact=log</code> flag, redaction will be disabled in the web UI but
retained for server logs. Alternatively, <code>--redact=none</code> can be used to
disable redaction completely.</p>
</li>
<li>
<p>The Spark DataSource integration now can take advantage of scan locality
for better scan performance, the scan will take place at the closest replica
instead of going to the leader.</p>
</li>
<li>
<p>Various optimizations were made to reduce the 99th percentile latency of
writes on the tablet server. This can also improve throughput on certain
write workloads, particularly on larger clusters.</p>
</li>
<li>
<p>Kudu may now be configured to ignore system-wide auth_to_local mappings
configured in /etc/krb5.conf by setting the configuration flag
<code>--use_system_auth_to_local=false</code>
(see <a href="https://issues.apache.org/jira/browse/KUDU-2198">KUDU-2198</a>).</p>
</li>
<li>
<p>The performance of the compaction scheduler has been improved. In
previous versions, certain types of time series workloads were found to
cause compaction scheduling to take tens of seconds. These workloads now
schedule compactions an order of magnitude more efficiently.</p>
</li>
<li>
<p>The compaction scheduler has been improved to avoid running a compaction
when the benefit of that compaction is extremely small.</p>
</li>
<li>
<p>Tablet servers now consider the health of all replicas of a tablet before
deciding to evict one. This can improve stability of the Kudu cluster after
experiencing multiple simultaneous daemon failures
(see <a href="https://issues.apache.org/jira/browse/KUDU-2048">KUDU-2048</a>).</p>
</li>
<li>
<p>Several performance improvements have been made to the Kudu master,
particularly in concurrency of clients opening tables. This should improve
performance in highly concurrent workloads.</p>
</li>
<li>
<p>The on-disk size metric for a tablet now includes all data and metadata.
Previously, it excluded WAL segments and consensus metadata
(see <a href="https://issues.apache.org/jira/browse/KUDU-1755">KUDU-1755</a>).</p>
</li>
<li>
<p>Added verbose mode for the 'kudu cluster ksck' command to enable output
of detailed information on the cluster&#8217;s metadata, even when no errors are
detected.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.6.0_fixed_issues"><a class="link" href="#rn_1.6.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>HybridTime timestamp propagation now works in the Java client when using scan
tokens (see <a href="https://issues.apache.org/jira/browse/KUDU-1411">KUDU-1411</a>).</p>
</li>
<li>
<p>Fixed an error message commonly found in tablet server logs indicating that
operations were being read "from the future"
(see <a href="https://issues.apache.org/jira/browse/KUDU-1078">KUDU-1078</a>).</p>
</li>
<li>
<p>Tombstoned tablets no longer report metrics
(see <a href="https://issues.apache.org/jira/browse/KUDU-2044">KUDU-2044</a>).</p>
</li>
<li>
<p>Fixed a bug in the C++ client which could cause tablets to be erroneously
pruned, or skipped, during certain scans, resulting in fewer results than
expected being returned from queries. The bug only affected tables whose range
partition columns are a proper prefix of the primary key
(see <a href="https://issues.apache.org/jira/browse/KUDU-2173">KUDU-2173</a>).</p>
</li>
<li>
<p>Published Kudu Java artifacts are now fully compatible with JRE 7 and JRE 8.
There was previously a bug in the release process which made them compatible
only with JRE 8
(see <a href="https://issues.apache.org/jira/browse/KUDU-2188">KUDU-2188</a>).</p>
</li>
<li>
<p>Fixed a typo in the list of default TLS ciphers used by Kudu servers. As a
result, two additional cipher suites are now available:</p>
<div class="ulist">
<ul>
<li>
<p>ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128)  Mac=SHA256</p>
</li>
<li>
<p>AES256-GCM-SHA384       TLSv1.2 Kx=RSA  Au=RSA Enc=AESGCM(256) Mac=AEAD</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.6.0_wire_compatibility"><a class="link" href="#rn_1.6.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.6.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.6 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.5 and Kudu 1.6 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.6 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.6 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.6 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.6 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.6.0_incompatible_changes"><a class="link" href="#rn_1.6.0_incompatible_changes">Incompatible Changes in Kudu 1.6.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.6.0_client_compatibility"><a class="link" href="#rn_1.6.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.6 Java client library is API- and ABI-compatible with Kudu 1.5. Applications
written against Kudu 1.5 will compile and run against the Kudu 1.6 client library and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.6 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.5.
Applications written and compiled against the Kudu 1.5 client library will run without
modification against the Kudu 1.6 client library. Applications written and compiled
against the Kudu 1.6 client library will run without modification against the Kudu 1.5
client library.</p>
</li>
<li>
<p>The Kudu 1.6 Python client is API-compatible with Kudu 1.5. Applications
written against Kudu 1.5 will continue to run against the Kudu 1.6 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.5.0"><a class="link" href="#rn_1.5.0">Release notes specific to 1.5.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.5.0_upgrade_notes"><a class="link" href="#rn_1.5.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu 1.5 now enables the optional ability to compute, store, and verify
checksums on all pieces of data stored on a server by default. Due to
storage format changes, downgrading to versions 1.3 or earlier is not
supported and will result in an error.</p>
</li>
<li>
<p>Spark 2.2+ requires Java 8 at runtime even though Kudu Spark 2.x integration
is Java 7 compatible. Spark 2.2 is the default dependency version as of
Kudu 1.5.0.</p>
</li>
<li>
<p>The kudu-spark-tools module has been renamed to kudu-spark2-tools_2.11 in
order to include the Spark and Scala base versions. This matches the pattern
used in the kudu-spark module and artifacts.</p>
</li>
<li>
<p>To improve security, world-readable Kerberos keytab files are no longer
accepted by default. Set <code>--allow_world_readable_credentials=true</code> to override
this behavior. See
<a href="https://issues.apache.org/jira/browse/KUDU-1955">KUDU-1955</a> for additional
details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.5.0_deprecations"><a class="link" href="#rn_1.5.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Support for Java 7 is deprecated as of Kudu 1.5.0 and may be removed in the
next major release.</p>
</li>
<li>
<p>Support for Spark 1 (kudu-spark_2.10) is deprecated as of Kudu 1.5.0 and may
be removed in the next minor release.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.5.0_new_features"><a class="link" href="#rn_1.5.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Tablet servers are now optionally able to tolerate disk failures at
startup. This feature is experimental; by default, Kudu will crash if it
experiences a disk failure. When enabled, tablets with any data on the failed
disk will not be opened and will be replicated as needed. To enable this, set
the <code>--crash_on_eio</code> flag to <code>false</code>. Additionally, there is a configurable
tradeoff between a newly added tablet&#8217;s tolerance to disk failures and its
parallelization of I/O via the <code>--fs_target_data_dirs_per_tablet</code> flag.
Tablets that are spread across fewer disks are less likely to be affected by a
disk failure, at the cost of reduced parallelism. Note that the first
configured data directory and the WAL directory cannot currently tolerate disk
failures, and disk failures during run-time are still fatal.</p>
</li>
<li>
<p>Kudu server web UIs have a new configuration dashboard (/config) which
provides a high level summary of important security configuration values, such
as whether RPC authentication is required, or web server HTTPS encryption is
enabled. Other types of configuration will be added in future releases.</p>
</li>
<li>
<p>The <code>kudu</code> command line tool has two new features: <code>kudu tablet change_config
move_replica</code> and <code>kudu local_replica data_size</code>. The 'tablet change_config
move_replica' tool moves a tablet replica from one tablet server to another,
under the condition that the tablet is healthy. An operator can use this tool to
rebalance tablet replicas between tablet servers. The 'local_replica data size'
tool summarizes the space usage of a tablet, breaking it down by type of file,
column, and rowset.</p>
</li>
<li>
<p>kudu-client-tools now supports exporting CSV files and importing
Apache Parquet files. This feature is unstable and may change APIs and
functionality in future releases.</p>
</li>
<li>
<p>kudu-spark-tools now supports importing and exporting CSV, Apache Avro and
Apache Parquet files. This feature is unstable and may change APIs and
functionality in future releases.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.5.0_optimizations_improvements"><a class="link" href="#rn_1.5.0_optimizations_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The log block manager now performs disk synchronization in batches.
This optimization can significantly reduce the time taken to copy tablet data
from one server to another; in one case tablet copy time is reduced by 35%.
It also improves the general performance of flushes and compactions.</p>
</li>
<li>
<p>A new feature referred to as "tombstoned voting" is added to the Raft
consensus subsystem to allow tablet replicas in the <code>TABLET_DATA_TOMBSTONED</code>
state to vote in tablet leader elections. This feature increases Kudu&#8217;s
stability and availability by improving the likelihood that Kudu will be able
to self-heal in more edge-case scenarios, such as when tablet copy operations
fail. See <a href="https://issues.apache.org/jira/browse/KUDU-871">KUDU-871</a> for
details.</p>
</li>
<li>
<p>The tablet on-disk size metric has been made more accurate. Previously, the
metric included only REDO deltas; it now counts all deltas. Additionally, the
metric includes the size of bloomfiles, ad hoc indexes, and the tablet
superblock. WAL segments and consensus metadata are still not counted. The
latter is very small compared to the size of data, but the former may be
significant depending on the workload (this will be resolved in a future
release).</p>
</li>
<li>
<p>The number of threads used by the Kudu tablet server has been further reduced.
Previously, each follower tablet replica used a dedicated thread to detect
leader tablet replica failures, and each leader replica used one dedicated
thread per follower to send Raft heartbeats to that follower. The work
performed by these dedicated threads has been reassigned to other threads.
Other improvements were made to facilitate better thread sharing by tablets.
For the purpose of capacity planning, expect the Kudu tablet server to create
one thread for every five "cold" (i.e. those not servicing writes) tablets,
and an additional three threads for every "hot" tablet. This will be further
improved upon in future Kudu releases.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.5.0_fixed_issues"><a class="link" href="#rn_1.5.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The Java Kudu client now automatically requests new authentication tokens
after expiration. As a result, long-lived Java clients are now supported. See
<a href="https://issues.apache.org/jira/browse/KUDU-2013">KUDU-2013</a> for more
details.</p>
</li>
<li>
<p>Multiple Kerberos compatibility bugs have been fixed, including support
for environments with disabled reverse DNS, FreeIPA compatibility, principal
names including uppercase characters, and hosts without a FQDN.</p>
</li>
<li>
<p>A bug in the binary prefix decoder which could cause a tablet server 'check'
assertion crash has been fixed. The crash could only be triggered in very
specific scenarios; see
<a href="https://issues.apache.org/jira/browse/KUDU-2085">KUDU-2085</a> for additional
details.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.5.0_wire_compatibility"><a class="link" href="#rn_1.5.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.5.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.5 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.4 and Kudu 1.5 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.5 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.5 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.5 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.5 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.5.0_incompatible_changes"><a class="link" href="#rn_1.5.0_incompatible_changes">Incompatible Changes in Kudu 1.5.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.5.0_client_compatibility"><a class="link" href="#rn_1.5.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.5 Java client library is API- and ABI-compatible with Kudu 1.4. Applications
written against Kudu 1.4 will compile and run against the Kudu 1.5 client library and
vice-versa, unless one of the following newly added APIs is used:</p>
</li>
<li>
<p>The Kudu 1.5 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.4.
Applications written and compiled against the Kudu 1.4 client library will run without
modification against the Kudu 1.5 client library. Applications written and compiled
against the Kudu 1.5 client library will run without modification against the Kudu 1.4
client library.</p>
</li>
<li>
<p>The Kudu 1.5 Python client is API-compatible with Kudu 1.4. Applications
written against Kudu 1.4 will continue to run against the Kudu 1.5 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.4.0"><a class="link" href="#rn_1.4.0">Release notes specific to 1.4.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.4.0_upgrade_notes"><a class="link" href="#rn_1.4.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The Maintenance Manager now fully uses the threads it&#8217;s given (see the improvements
described further below), so it&#8217;s now able to generate a lot more IO by flushing and
compacting more often. Generally, the recommended ratio of MM threads to data
directories is 1:3; operators of clusters above that ratio should be mindful of
this when upgrading.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.4.0_new_features"><a class="link" href="#rn_1.4.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The C++ and Java client libraries now support the ability to alter the
storage attributes (e.g. encoding and compression) and default value
of existing columns. Additionally, it is now possible to rename
a column which is part of a table&#8217;s primary key.</p>
</li>
<li>
<p>The C++ client library now includes an experimental <code>KuduPartitioner</code> API which may
be used to efficiently map rows to their associated partitions and hosts.
This may be used to achieve better locality or distribution of writes
in client applications.</p>
</li>
<li>
<p>The Java client library now supports enabling fault tolerance on scanners.
Fault tolerant scanners are able to transparently recover from concurrent
server crashes at the cost of some performance overhead. See the Java
API documentation for more details on usage.</p>
</li>
<li>
<p>The <code>kudu</code> command line tool now includes a new advanced administrative
command <code>kudu remote_replica unsafe_change_config</code>. This command may be used
to force a tablet to perform an unsafe change of its Raft replication
configuration. This can be used to recover from scenarios such as a loss
of a majority of replicas, at the risk of losing edits.</p>
</li>
<li>
<p>The <code>kudu</code> command line tool now includes the <code>kudu fs check</code> command
which performs various offline consistency checks on the local on-disk
storage of a Kudu Tablet Server or Master. In addition to detecting
various inconsistencies or corruptions, it can also detect and remove
data blocks that are no longer referenced by any tablet but were not
fully removed from disk due to a crash or a bug in prior versions of Kudu.</p>
</li>
<li>
<p>The <code>kudu</code> command line tool can now be used to list the addresses and
identifiers of the servers in the cluster using either <code>kudu master list</code>
or <code>kudu tserver list</code>.</p>
</li>
<li>
<p>Kudu 1.4 now includes the optional ability to compute, store, and verify
checksums on all pieces of data stored on a server. Prior versions only
performed checksums on certain portions of the stored data. This feature
is not enabled by default since it makes a backward-incompatible change
to the on-disk formats and thus prevent downgrades. Kudu 1.5 will enable
the feature by default.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_optimizations_and_improvements_3"><a class="link" href="#_optimizations_and_improvements_3">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><code>kudu cluster ksck</code> now detects and reports new classes of
inconsistencies and issues. In particular, it is better able to
detect cases where a configuration change such as a replica eviction
or addition is pending but is unable to be committed. It also now
properly detects and reports cases where a tablet has no elected
leader.</p>
</li>
<li>
<p>The default size for Write Ahead Log (WAL) segments has been reduced
from 64MB to 8MB. Additionally, in the case that all replicas of a
tablet are fully up to date and data has been flushed from memory,
servers will now retain only a single WAL segment rather than
two. These changes are expected to reduce the average consumption of
disk space on the configured WAL disk by 16x, as well as improve the
startup speed of tablet servers by reducing the number and size of
WAL segments that need to be re-read.</p>
</li>
<li>
<p>The default on-disk storage system used by Kudu servers (Log Block Manager)
has been improved to compact its metadata and remove dead containers.
This compaction and garbage collection occurs only at startup. Thus, the
first startup after upgrade is expected to be longer than usual, and
subsequent restarts should be shorter.</p>
</li>
<li>
<p>The usability of the Kudu web interfaces has been improved,
particularly for the case where a server hosts many tablets or a
table has many partitions. Pages that list tablets now include
a top-level summary of tablet status and show the complete list
under a toggleable section.</p>
</li>
<li>
<p>The Maintenance Manager has been improved to improve utilization of the
configured maintenance threads. Previously, maintenance work would
only be scheduled a maximum of 4 times per second, but now maintenance
work will be scheduled immediately whenever any configured thread is
available. This can improve the throughput of write-heavy workloads.</p>
</li>
<li>
<p>The Maintenance Manager will now aggressively schedule flushes of
in-memory data when memory consumption crosses 60% of the configured
process-wide memory limit. The backpressure mechanism which begins
to throttle client writes has been accordingly adjusted to not begin
throttling until reaching 80% of the configured limit. These two
changes together result in improved write throughput, more consistent
latency, and fewer timeouts due to memory exhaustion.</p>
</li>
<li>
<p>Many performance improvements were made to write performance. Applications
which send large batches of writes to Kudu should see substantially
improved throughput in Kudu 1.4.</p>
</li>
<li>
<p>Several improvements were made to reduce the memory consumption of
Kudu Tablet Servers which hold large volumes of data. The specific
amount of memory saved varies depending on workload, but the expectation
is that approximately 350MB of excess peak memory usage has been eliminated
per TB of data stored.</p>
</li>
<li>
<p>The number of threads used by the Kudu Tablet Server has been reduced.
Previously, each tablet used a dedicated thread to append to its WAL.
Those threads now automatically stop running if there is no activity
on a given tablet for a short period of time.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.4.0_fixed_issues"><a class="link" href="#rn_1.4.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-2020">KUDU-2020</a>
Fixed an issue where re-replication after a failure would proceed
significantly slower than expected. This bug caused many tablets
to be unnecessarily copied multiple times before successfully
being considered re-replicated, resulting in significantly more
network and IO bandwidth usage than expected. Mean time to recovery
on clusters with large amounts of data is improved by up to 10x by this
fix.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1982">KUDU-1982</a>
Fixed an issue where the Java client would call <code>NetworkInterface.getByInetAddress</code>
very often, causing performance problems particularly on Windows
where this function can be quite slow.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1755">KUDU-1755</a>
Improved the accuracy of the <code>on_disk_size</code> replica metrics to
include the size consumed by bloom filters, primary key indexes,
and superblock metadata, and delta files. Note that, because the size
metric is now more accurate, the reported values are expected to
increase after upgrading to Kudu 1.4. This does not indicate that
replicas are using more space after the upgrade; rather, it is
now accurately reporting the amount of space that has always been
used.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1192">KUDU-1192</a>
Kudu servers will now periodically flush their log messages to disk
even if no <code>WARNING</code>-level messages have been logged. This makes it
easier to tail the logs to see progress output during normal startup.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1999">KUDU-1999</a>
Fixed the ability to run Spark jobs in "cluster" mode against
Kudu clusters secured by Kerberos.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.4.0_wire_compatibility"><a class="link" href="#rn_1.4.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.4.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.4 clients may connect to servers running Kudu 1.0 or later. If the client uses
features that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.4 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.3 and Kudu 1.4 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features introduced in Kudu 1.3 place the following limitations
on wire compatibility between Kudu 1.4 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.4 cluster is configured with authentication or encryption set to "required",
clients older than Kudu 1.3 will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.4 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.4.0_incompatible_changes"><a class="link" href="#rn_1.4.0_incompatible_changes">Incompatible Changes in Kudu 1.4.0</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu servers, by default, will now only allow unencrypted or unauthenticated connections
from trusted subnets, which are private networks (127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,
192.168.0.0/16,169.254.0.0/16) and local subnets of all local network interfaces.
Unencrypted or unauthenticated connections from publicly routable IPs will be rejected,
even if encryption and authentication are not configured.</p>
<div class="paragraph">
<p>The trusted subnets can be configured using the <code>--trusted_subnets</code> flag, which can be set
   to IP blocks represented in CIDR notation separated by comma. Set it to '0.0.0.0/0' to
   allow unauthenticated connections from all remote IP addresses. However, if network access
   is not otherwise restricted by a firewall, malicious users may be able to gain unauthorized
   access. This can be mitigated if authentication and encryption are configured to be
   required.</p>
</div>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="rn_1.4.0_client_compatibility"><a class="link" href="#rn_1.4.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.4 Java client library is API- and ABI-compatible with Kudu 1.3. Applications
written against Kudu 1.3 will compile and run against the Kudu 1.4 client library and
vice-versa, unless one of the following newly added APIs is used:</p>
<div class="ulist">
<ul>
<li>
<p><code>[Async]KuduScannerBuilder.setFaultTolerant(&#8230;&#8203;)</code></p>
</li>
<li>
<p>New methods in <code>AlterTableOptions</code>: <code>removeDefault</code>, <code>changeDefault</code>, <code>changeDesiredBlockSize</code>,
<code>changeEncoding</code>, <code>changeCompressionAlgorithm</code></p>
</li>
<li>
<p><code>KuduClient.updateLastPropagatedTimestamp</code></p>
</li>
<li>
<p><code>KuduClient.getLastPropagatedTimestamp</code></p>
</li>
<li>
<p>New getters in <code>PartialRow</code>: <code>getBoolean</code>, <code>getByte</code>, <code>getShort</code>, <code>getInt</code>, <code>getLong</code>,
<code>getFloat</code>, <code>getDouble</code>, <code>getString</code>, <code>getBinaryCopy</code>, <code>getBinary</code>, <code>isNull</code>,
<code>isSet</code>.</p>
</li>
</ul>
</div>
</li>
<li>
<p>The Kudu 1.4 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.3.
Applications written and compiled against the Kudu 1.3 client library will run without
modification against the Kudu 1.4 client library. Applications written and compiled
against the Kudu 1.4 client library will run without modification against the Kudu 1.3
client library unless they use one of the following new APIs:</p>
<div class="ulist">
<ul>
<li>
<p><code>KuduPartitionerBuilder</code></p>
</li>
<li>
<p>`KuduPartitioner</p>
</li>
<li>
<p><code>KuduScanner::SetRowFormatFlags</code> (unstable API)</p>
</li>
<li>
<p><code>KuduScanBatch::direct_data</code>, <code>KuduScanBatch::indirect_data</code> (unstable API)</p>
</li>
</ul>
</div>
</li>
<li>
<p>The Kudu 1.4 Python client is API-compatible with Kudu 1.3. Applications
written against Kudu 1.3 will continue to run against the Kudu 1.4 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.3.0"><a class="link" href="#rn_1.3.0">Release notes specific to 1.3.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.3.0_new_features"><a class="link" href="#rn_1.3.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu 1.3 adds support for strong authentication based on Kerberos. This optional feature
allows users to authenticate themselves using Kerberos tickets, and also provides
mutual authentication of servers using Kerberos credentials stored in keytabs. This
feature is optional, but recommended for deployments requiring security.</p>
</li>
<li>
<p>Kudu 1.3 adds support for encryption of data on the network using Transport Layer Security
(TLS). Kudu will now use TLS to encrypt all network traffic between clients and servers as
well as any internal traffic among servers, with the exception of traffic determined to
be within a localhost network connection. Encryption is enabled by default whenever it can
be determined that both the client and server support the feature.</p>
</li>
<li>
<p>Kudu 1.3 adds coarse-grained service-level authorization of access to the cluster.
The operator may set up lists of permitted users who may act as administrators and
as clients of the cluster. Combined with the strong authentication feature described
above, this can enable a secure environment for some use cases. Note that fine-grained
access control (e.g. table-level or column-level) is not yet supported.</p>
</li>
<li>
<p>Kudu 1.3 adds a background task to tablet servers which removes historical versions of
data which have fallen behind the configured data retention time. This reduces disk space
usage in all workloads, but particularly in those with a higher volume of updates or
upserts.</p>
</li>
<li>
<p>Kudu now incorporates Google Breakpad, a library which writes crash reports in
the case of a server crash. These reports can be found within the configured log directory,
and can be useful during bug diagnosis.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_optimizations_and_improvements_4"><a class="link" href="#_optimizations_and_improvements_4">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu servers will now change the file permissions of data directories and contained
data files based on a new configuration flag <code>--umask</code>. As a result, after upgrading,
permissions on disk may be more restrictive than in previous versions. The new default
configuration improves data security.</p>
</li>
<li>
<p>Kudu&#8217;s web UI will now redact strings which may include sensitive user data. For example,
the monitoring page which shows in-progress scans no longer includes the scanner predicate
values. The tracing and RPC diagnostics endpoints no longer include contents of RPCs which
may include table data.</p>
</li>
<li>
<p>By default, Kudu now reserves 1% of each configured data volume as free space. If a volume
is seen to have less than 1% of disk space free, Kudu will stop writing to that volume
to avoid completely filling up the disk.</p>
</li>
<li>
<p>The default encoding for numeric columns (int, float, and double) has been changed
to <code>BIT_SHUFFLE</code>. The default encoding for binary and string columns has been
changed to <code>DICT_ENCODING</code>. Dictionary encoding automatically falls back to the old
default (<code>PLAIN</code>) when cardinality is too high to be effectively encoded.</p>
<div class="paragraph">
<p>These new defaults match the default behavior of other storage mechanisms such as
  Apache Parquet and are likely to perform better out of the box.</p>
</div>
</li>
<li>
<p>Kudu now uses <code>LZ4</code> compression when writing its Write Ahead Log (WAL). This improves
write performance and stability for many use cases.</p>
</li>
<li>
<p>Kudu now uses <code>LZ4</code> compression when writing delta files. This can improve both
read and write performance as well as save substantial disk usage, especially
for workloads involving a high number of updates or upserts containing compressible
data.</p>
</li>
<li>
<p>The Kudu API now supports the ability to express <code>IS NULL</code> and <code>IS NOT NULL</code> predicates
on scanners. The Spark DataSource integration will take advantage of these new
predicates when possible.</p>
</li>
<li>
<p>Both C&#43;&#43; and Java clients have been optimized to prune partitions more effectively
when performing scans using the <code>IN (&#8230;&#8203;)</code> predicate.</p>
</li>
<li>
<p>The exception messages produced by the Java client are now truncated to a maximum length
of 32KB.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.3.0_fixed_issues"><a class="link" href="#rn_1.3.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1893">KUDU-1893</a>
Fixed a critical bug in which wrong results would be returned when evaluating
predicates applied to columns added using the <code>ALTER TABLE</code> operation.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1905">KUDU-1905</a>
Fixed a crash after inserting a row sharing a primary key with a recently-deleted
row in tables where the primary key is comprised of all of the columns.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1899">KUDU-1899</a>
Fixed a crash after inserting a row with an empty string as the single-column
primary key.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1904">KUDU-1904</a>
Fixed a potential crash when performing random reads against a column using RLE
encoding and containing long runs of NULL values.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1853">KUDU-1853</a>
Fixed an issue where disk space could be leaked on servers which experienced an error
during the process of copying tablet data from another server.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1856">KUDU-1856</a>
Fixed an issue in which disk space could be leaked by Kudu servers storing data on
partitions using the XFS file system. Any leaked disk space will be automatically
recovered upon upgrade.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1888">KUDU-1888</a>,
<a href="https://issues.apache.org/jira/browse/KUDU-1906">KUDU-1906</a>
Fixed multiple issues in the Java client where operation callbacks would never be
triggered, causing the client to hang.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.3.0_wire_compatibility"><a class="link" href="#rn_1.3.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.3.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.3 clients may connect to servers running Kudu 1.0. If the client uses features
that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.3 with the exception of the
below-mentioned restrictions regarding secure clusters.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.2 and Kudu 1.3 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The authentication features newly introduced in Kudu 1.3 place the following limitations
on wire compatibility with older versions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.3 cluster is configured with authentication or encryption set to "required",
older clients will be unable to connect.</p>
</li>
<li>
<p>If a Kudu 1.3 cluster is configured with authentication and encryption set to "optional"
or "disabled", older clients will still be able to connect.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.3.0_incompatible_changes"><a class="link" href="#rn_1.3.0_incompatible_changes">Incompatible Changes in Kudu 1.3.0</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Due to storage format changes in Kudu 1.3, downgrade from Kudu 1.3 to earlier versions
is not supported. After upgrading to Kudu 1.3, attempting to restart with an earlier
version will result in an error.</p>
</li>
<li>
<p>In order to support running MapReduce and Spark jobs on secure clusters, these
frameworks now connect to the cluster at job submission time to retrieve authentication
credentials which can later be used by the tasks to be spawned. This means that
the process submitting jobs to Kudu clusters must have direct access to that cluster.</p>
</li>
<li>
<p>The embedded web servers in Kudu processes now specify the <code>X-Frame-Options: DENY</code> HTTP
header which prevents embedding Kudu web pages in HTML <code>iframe</code> elements.</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="rn_1.3.0_client_compatibility"><a class="link" href="#rn_1.3.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.3 Java client library is API- and ABI-compatible with Kudu 1.2. Applications
written against Kudu 1.2 will compile and run against the Kudu 1.3 client library and
vice-versa, unless one of the following newly added APIs is used:</p>
<div class="ulist">
<ul>
<li>
<p><code>[Async]KuduClient.exportAuthenticationCredentials(&#8230;&#8203;)</code> (unstable API)</p>
</li>
<li>
<p><code>[Async]KuduClient.importAuthenticationCredentials(&#8230;&#8203;)</code> (unstable API)</p>
</li>
<li>
<p><code>[Async]KuduClient.getMasterAddressesAsString()</code></p>
</li>
<li>
<p><code>KuduPredicate.newIsNotNullPredicate()</code></p>
</li>
<li>
<p><code>KuduPredicate.newIsNullPredicate()</code></p>
</li>
</ul>
</div>
</li>
<li>
<p>The Kudu 1.3 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.2.
Applications written and compiled against the Kudu 1.2 client library will run without
modification against the Kudu 1.3 client library. Applications written and compiled
against the Kudu 1.3 client library will run without modification against the Kudu 1.2
client library unless they use one of the following new APIs:</p>
<div class="ulist">
<ul>
<li>
<p><code>kudu::DisableOpenSSLInitialization()</code></p>
</li>
<li>
<p><code>KuduClientBuilder::import_authentication_credentials(&#8230;&#8203;)</code></p>
</li>
<li>
<p><code>KuduClient::ExportAuthenticationCredentials(&#8230;&#8203;)</code></p>
</li>
<li>
<p><code>KuduClient::NewIsNotNullPredicate(&#8230;&#8203;)</code></p>
</li>
<li>
<p><code>KuduClient::NewIsNullPredicate(&#8230;&#8203;)</code></p>
</li>
</ul>
</div>
</li>
<li>
<p>The Kudu 1.3 Python client is API-compatible with Kudu 1.2. Applications
written against Kudu 1.2 will continue to run against the Kudu 1.3 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.2.0"><a class="link" href="#rn_1.2.0">Release notes specific to 1.2.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.2.0_new_features"><a class="link" href="#rn_1.2.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu clients and servers now redact user data such as cell values
from log messages, Java exception messages, and <code>Status</code> strings.
User metadata such as table names, column names, and partition
bounds are not redacted.</p>
<div class="paragraph">
<p>Redaction is enabled by default, but may be disabled by setting the new
<code>log_redact_user_data</code> flag to <code>false</code>.</p>
</div>
</li>
<li>
<p>Kudu&#8217;s ability to provide consistency guarantees has been substantially
improved:</p>
<div class="ulist">
<ul>
<li>
<p>Replicas now correctly track their "safe timestamp". This timestamp
is the maximum timestamp at which reads are guaranteed to be
repeatable.</p>
</li>
<li>
<p>A scan created using the <code>SCAN_AT_SNAPSHOT</code> mode will now
either wait for the requested snapshot to be "safe" at the replica
being scanned, or be re-routed to a replica where the requested
snapshot is "safe". This ensures that all such scans are repeatable.</p>
</li>
<li>
<p>Kudu Tablet Servers now properly retain historical data when a row
with a given primary key is inserted and deleted, followed by the
insertion of a new row with the same key. Previous versions of Kudu
would not retain history in such situations. This allows the server
to return correct results for snapshot scans with a timestamp in the
past, even in the presence of such "reinsertion" scenarios.</p>
</li>
<li>
<p>The Kudu clients now automatically retain the timestamp of their latest
successful read or write operation. Scans using the <code>READ_AT_SNAPSHOT</code> mode
without a client-provided timestamp automatically assign a timestamp
higher than the timestamp of their most recent write. Writes also propagate
the timestamp, ensuring that sequences of operations with causal dependencies
between them are assigned increasing timestamps. Together, these changes
allow clients to achieve read-your-writes consistency, and also ensure
that snapshot scans performed by other clients return causally-consistent
results.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Kudu servers now automatically limit the number of log files.
The number of log files retained can be configured using the
<code>max_log_files</code> flag. By default, 10 log files will be retained
at each severity level.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_optimizations_and_improvements_5"><a class="link" href="#_optimizations_and_improvements_5">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The logging in the Java and C&#43;&#43; clients has been substantially quieted.
Clients no longer log messages in normal operation unless there
is some kind of error.</p>
</li>
<li>
<p>The C&#43;&#43; client now includes a <code>KuduSession::SetErrorBufferSpace</code>
API which can limit the amount of memory used to buffer
errors from asynchronous operations.</p>
</li>
<li>
<p>The Java client now fetches tablet locations from the Kudu Master
in batches of 1000, increased from batches of 10 in prior versions.
This can substantially improve the performance of Spark and Impala
queries running against Kudu tables with large numbers of tablets.</p>
</li>
<li>
<p>Table metadata lock contention in the Kudu Master was substantially
reduced. This improves the performance of tablet location lookups on
large clusters with a high degree of concurrency.</p>
</li>
<li>
<p>Lock contention in the Kudu Tablet Server during high-concurrency
write workloads was also reduced. This can reduce CPU consumption and
improve performance when a large number of concurrent clients are writing
to a smaller number of a servers.</p>
</li>
<li>
<p>Lock contention when writing log messages has been substantially reduced.
This source of contention could cause high tail latencies on requests,
and when under high load could contribute to cluster instability
such as election storms and request timeouts.</p>
</li>
<li>
<p>The <code>BITSHUFFLE</code> column encoding has been optimized to use the <code>AVX2</code>
instruction set present on processors including Intel&#174; Sandy Bridge
and later. Scans on <code>BITSHUFFLE</code>-encoded columns are now up to 30% faster.</p>
</li>
<li>
<p>The <code>kudu</code> tool now accepts hyphens as an alternative to underscores
when specifying actions. For example, <code>kudu local-replica copy-from-remote</code>
may be used as an alternative to <code>kudu local_replica copy_from_remote</code>.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.2.0_fixed_issues"><a class="link" href="#rn_1.2.0_fixed_issues">Fixed Issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1508">KUDU-1508</a>
Fixed a long-standing issue in which running Kudu on <code>ext4</code> file systems
could cause file system corruption.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1399">KUDU-1399</a>
Implemented an LRU cache for open files, which prevents running out of
file descriptors on long-lived Kudu clusters. By default, Kudu will
limit its file descriptor usage to half of its configured <code>ulimit</code>.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/5192">Gerrit #5192</a>
Fixed an issue which caused data corruption and crashes in the case that
a table had a non-composite (single-column) primary key, and that column
was specified to use <code>DICT_ENCODING</code> or <code>BITSHUFFLE</code> encodings. If a
table with an affected schema was written in previous versions of Kudu,
the corruption will not be automatically repaired; users are encouraged
to re-insert such tables after upgrading to Kudu 1.2 or later.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/5541">Gerrit #5541</a>
Fixed a bug in the Spark <code>KuduRDD</code> implementation which could cause
rows in the result set to be silently skipped in some cases.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1551">KUDU-1551</a>
Fixed an issue in which the tablet server would crash on restart in the
case that it had previously crashed during the process of allocating
a new WAL segment.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1764">KUDU-1764</a>
Fixed an issue where Kudu servers would leak approximately 16-32MB of disk
space for every 10GB of data written to disk. After upgrading to Kudu
1.2 or later, any disk space leaked in previous versions will be
automatically recovered on startup.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1750">KUDU-1750</a>
Fixed an issue where the API to drop a range partition would drop any
partition with a matching lower <em>or</em> upper bound, rather than any partition
with matching lower <em>and</em> upper bound.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1766">KUDU-1766</a>
Fixed an issue in the Java client where equality predicates which compared
an integer column to its maximum possible value (e.g. <code>Integer.MAX_VALUE</code>)
would return incorrect results.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1780">KUDU-1780</a>
Fixed the <code>kudu-client</code> Java artifact to properly shade classes in the
<code>com.google.thirdparty</code> namespace. The lack of proper shading in prior
releases could cause conflicts with certain versions of Google Guava.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/5327">Gerrit #5327</a>
Fixed shading issues in the <code>kudu-flume-sink</code> Java artifact. The sink
now expects that Hadoop dependencies are provided by Flume, and properly
shades the Kudu client&#8217;s dependencies.</p>
</li>
<li>
<p>Fixed a few issues using the Python client library from Python 3.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.2.0_wire_compatibility"><a class="link" href="#rn_1.2.0_wire_compatibility">Wire Protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.2.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.2 clients may connect to servers running Kudu 1.0. If the client uses features
that are not available on the target server, an error will be returned.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.2 without limitations.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.1 and Kudu 1.2 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.2.0_incompatible_changes"><a class="link" href="#rn_1.2.0_incompatible_changes">Incompatible Changes in Kudu 1.2.0</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The replication factor of tables is now limited to a maximum of 7. In addition,
it is no longer allowed to create a table with an even replication factor.</p>
</li>
<li>
<p>The <code>GROUP_VARINT</code> encoding is now deprecated. Kudu servers have never supported
this encoding, and now the client-side constant has been deprecated to match the
server&#8217;s capabilities.</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="_new_restrictions_on_data_schemas_and_identifiers"><a class="link" href="#_new_restrictions_on_data_schemas_and_identifiers">New Restrictions on Data, Schemas, and Identifiers</a></h3>
<div class="paragraph">
<p>Kudu 1.2.0 introduces several new restrictions on schemas, cell size, and identifiers:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">Number of Columns</dt>
<dd>
<p>By default, Kudu will not permit the creation of tables with
more than 300 columns. We recommend schema designs that use fewer columns for best
performance.</p>
</dd>
<dt class="hdlist1">Size of Cells</dt>
<dd>
<p>No individual cell may be larger than 64KB. The cells making up a
a composite key are limited to a total of 16KB after the internal composite-key encoding
done by Kudu. Inserting rows not conforming to these limitations will result in errors
being returned to the client.</p>
</dd>
<dt class="hdlist1">Valid Identifiers</dt>
<dd>
<p>Identifiers such as column and table names are now restricted to
be valid UTF-8 strings. Additionally, a maximum length of 256 characters is enforced.</p>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="rn_1.2.0_client_compatibility"><a class="link" href="#rn_1.2.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.2 Java client is API- and ABI-compatible with Kudu 1.1. Applications
written against Kudu 1.1 will compile and run against the Kudu 1.2 client and
vice-versa.</p>
</li>
<li>
<p>The Kudu 1.2 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.1.
Applications written and compiled against the Kudu 1.1 client will run without
modification against the Kudu 1.2 client. Applications written and compiled
against the Kudu 1.2 client will run without modification against the Kudu 1.1
client unless they use one of the following new APIs:</p>
<div class="ulist">
<ul>
<li>
<p><code>kudu::DisableSaslInitialization()</code></p>
</li>
<li>
<p><code>KuduSession::SetErrorBufferSpace(&#8230;&#8203;)</code></p>
</li>
</ul>
</div>
</li>
<li>
<p>The Kudu 1.2 Python client is API-compatible with Kudu 1.1. Applications
written against Kudu 1.1 will continue to run against the Kudu 1.2 client
and vice-versa.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.1.0"><a class="link" href="#rn_1.1.0">Release notes specific to 1.1.0</a></h2>
<div class="sectionbody">

</div>
</div>
<div class="sect1">
<h2 id="rn_1.1.0_new_features"><a class="link" href="#rn_1.1.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The Python client has been brought up to feature parity with the Java and C&#43;&#43; clients
and as such the package version will be brought to 1.1 with this release (from 0.3). A
list of the highlights can be found below.</p>
<div class="ulist">
<ul>
<li>
<p>Improved Partial Row semantics</p>
</li>
<li>
<p>Range partition support</p>
</li>
<li>
<p>Scan Token API</p>
</li>
<li>
<p>Enhanced predicate support</p>
</li>
<li>
<p>Support for all Kudu data types (including a mapping of Python&#8217;s <code>datetime.datetime</code> to
<code>UNIXTIME_MICROS</code>)</p>
</li>
<li>
<p>Alter table support</p>
</li>
<li>
<p>Enabled Read at Snapshot for Scanners</p>
</li>
<li>
<p>Enabled Scanner Replica Selection</p>
</li>
<li>
<p>A few bug fixes for Python 3 in addition to various other improvements.</p>
</li>
</ul>
</div>
</li>
<li>
<p>IN LIST predicate pushdown support was added to allow optimized execution of filters which
match on a set of column values. Support for Spark, Map Reduce and Impala queries utilizing
IN LIST pushdown is not yet complete.</p>
</li>
<li>
<p>The Java client now features client-side request tracing in order to help troubleshoot timeouts.
Error messages are now augmented with traces that show which servers were contacted before the
timeout occurred instead of just the last error. The traces also contain RPCs that were
required to fulfill the client&#8217;s request, such as contacting the master to discover a tablet&#8217;s
location. Note that the traces are not available for successful requests and are not
programmatically queryable.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_optimizations_and_improvements_6"><a class="link" href="#_optimizations_and_improvements_6">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu now publishes JAR files for Spark 2.0 compiled with Scala 2.11 along with the
existing Spark 1.6 JAR compiled with Scala 2.10.</p>
</li>
<li>
<p>The Java client now allows configuring scanners to read from the closest replica instead of
the known leader replica. The default remains the latter. Use the relevant <code>ReplicaSelection</code>
enum with the scanner&#8217;s builder to change this behavior.</p>
</li>
<li>
<p>Tablet servers use a new policy for retaining write-ahead log (WAL) segments.
Previously, servers used the 'log_min_segments_to_retain' flag to prioritize
any flushes which were retaining log segments past the configured value (default 2).
This policy caused servers to flush in-memory data more frequently than necessary,
limiting write performance.</p>
<div class="paragraph">
<p>The new policy introduces a new flag 'log_target_replay_size_mb' which
  determines the threshold at which write-ahead log retention will prioritize flushes.
  The new flag is considered experimental and users should not need to modify
  its value.</p>
</div>
<div class="paragraph">
<p>The improved policy has been seen to improve write performance in some use cases
  by a factor of 2x relative to the old policy.</p>
</div>
</li>
<li>
<p>Kudu&#8217;s implementation of the Raft consensus algorithm has been improved to include
a "pre-election" phase. This can improve the stability of tablet leader election
in high-load scenarios, especially if each server hosts a high number of tablets.</p>
</li>
<li>
<p>Tablet server start-up time has been substantially improved in the case that
the server contains a high number of tombstoned tablet replicas.</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="_command_line_tools"><a class="link" href="#_command_line_tools">Command line tools</a></h3>
<div class="ulist">
<ul>
<li>
<p>The tool <code>kudu tablet leader_step_down</code> has been added to manually force a leader to step down.</p>
</li>
<li>
<p>The tool <code>kudu remote_replica copy</code> has been added to manually copy a replica from
one running tablet server to another.</p>
</li>
<li>
<p>The tool <code>kudu local_replica delete</code> has been added to delete a replica of a tablet.</p>
</li>
<li>
<p>The <code>kudu test loadgen</code> tool has been added to replace the obsoleted
<code>insert-generated-rows</code> standalone binary. The new tool is enriched with
additional functionality and can be used to run load generation tests against
a Kudu cluster.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_wire_protocol_compatibility"><a class="link" href="#_wire_protocol_compatibility">Wire protocol compatibility</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.1.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.1 clients may connect to servers running Kudu 1.0. If the client uses the new
'IN LIST' predicate type, an error will be returned.</p>
</li>
<li>
<p>Kudu 1.0 clients may connect to servers running Kudu 1.1 without limitations.</p>
</li>
<li>
<p>Rolling upgrade between Kudu 1.0 and Kudu 1.1 servers is believed to be possible
though has not been sufficiently tested. Users are encouraged to shut down all nodes
in the cluster, upgrade the software, and then restart the daemons on the new version.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.1.0_incompatible_changes"><a class="link" href="#rn_1.1.0_incompatible_changes">Incompatible changes in Kudu 1.1.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_client_apis_cjavapython"><a class="link" href="#_client_apis_cjavapython">Client APIs (C&#43;&#43;/Java/Python)</a></h3>
<div class="ulist">
<ul>
<li>
<p>The C&#43;&#43; client no longer requires the
<a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html">old gcc5 ABI</a>.
Which ABI is actually used depends on the compiler configuration. Some new distros
(e.g. Ubuntu 16.04) will use the new ABI. Your application must use the same ABI as is
used by the client library; an easy way to guarantee this is to use the same compiler
to build both.</p>
</li>
<li>
<p>The C&#43;&#43; client&#8217;s <code>KuduSession::CountBufferedOperations()</code> method is
deprecated. Its behavior is inconsistent unless the session runs in the
<code>MANUAL_FLUSH</code> mode. Instead, to get number of buffered operations, count
invocations of the <code>KuduSession::Apply()</code> method since last
<code>KuduSession::Flush()</code> call or, if using asynchronous flushing, since last
invocation of the callback passed into <code>KuduSession::FlushAsync()</code>.</p>
</li>
<li>
<p>The Java client&#8217;s <code>OperationResponse.getWriteTimestamp</code> method was renamed to <code>getWriteTimestampRaw</code>
to emphasize that it doesn&#8217;t return milliseconds, unlike what its Javadoc indicated. The renamed
method was also hidden from the public APIs and should not be used.</p>
</li>
<li>
<p>The Java client&#8217;s sync API (<code>KuduClient</code>, <code>KuduSession</code>, <code>KuduScanner</code>) used to throw either
a <code>NonRecoverableException</code> or a <code>TimeoutException</code> for a timeout, and now it&#8217;s only possible for the
client to throw the former.</p>
</li>
<li>
<p>The Java client&#8217;s handling of errors in <code>KuduSession</code> was modified so that subclasses of
<code>KuduException</code> are converted into RowErrors instead of being thrown.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.0.1"><a class="link" href="#rn_1.0.1">Release notes specific to 1.0.1</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Apache Kudu 1.0.1 is a bug fix release, with no new features or backwards
incompatible changes.</p>
</div>
<div class="sect2">
<h3 id="rn_1.0.1_fixed_issues"><a class="link" href="#rn_1.0.1_fixed_issues">Fixed Issues</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1681">KUDU-1681</a> Fixed a bug in
the tablet server which could cause a crash when the DNS lookup during master
heartbeat failed.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1660">KUDU-1660</a>: Fixed a bug
which would cause the Kudu master and tablet server to fail to start on single
CPU systems.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1651">KUDU-1652</a>: Fixed a bug
that would cause the C++ client, tablet server, and Java client to crash or
throw an exception when attempting to scan a table with a predicate which
simplifies to <code>IS NOT NULL</code> on a non-nullable column. For instance, setting a
<code>&#8656; 127</code> predicate on an <code>INT8</code> column could trigger this bug, since the
predicate only filters null values.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1651">KUDU-1651</a>: Fixed a bug
that would cause the tablet server to crash when evaluating a scan with
predicates over a dictionary encoded column containing an entire block of null
values.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1623">KUDU-1623</a>: Fixed a bug
that would cause the tablet server to crash when handling UPSERT operations
that only set values for the primary key columns.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/4488">Gerrit #4488</a> Fixed a bug in the
Java client&#8217;s KuduException class which could cause an unexpected
NullPointerException to be thrown when the exception did not have an
associated message.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1090">KUDU-1090</a> Fixed a bug in
the memory tracker which could cause a rare crash during tablet server
startup.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.0.0"><a class="link" href="#rn_1.0.0">Release notes specific to 1.0.0</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>After approximately a year of beta releases, Apache Kudu has reached version 1.0.
This version number signifies that the development team feels that Kudu is stable
enough for usage in production environments.</p>
</div>
<div class="paragraph">
<p>If you are new to Kudu, check out its list of <a href="index.html">features and benefits</a>.</p>
</div>
<div class="sect2">
<h3 id="rn_1.0.0_new_features"><a class="link" href="#rn_1.0.0_new_features">New features</a></h3>
<div class="paragraph">
<p>Kudu 1.0.0 delivers a number of new features, bug fixes, and optimizations.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Removal of multiversion concurrency control (MVCC) history is now supported.
This is known as tablet history GC. This allows Kudu to reclaim disk space,
where previously Kudu would keep a full history of all changes made to a
given table since the beginning of time. Previously, the only way to reclaim
disk space was to drop a table.</p>
<div class="paragraph">
<p>Kudu will still keep historical data, and the amount of history retained is
  controlled by setting the configuration flag <code>--tablet_history_max_age_sec</code>,
  which defaults to 15 minutes (expressed in seconds). The timestamp
  represented by the current time minus <code>tablet_history_max_age_sec</code> is known
  as the ancient history mark (AHM). When a compaction or flush occurs, Kudu
  will remove the history of changes made prior to the ancient history mark.
  This only affects historical data; currently-visible data will not be
  removed. A specialized maintenance manager background task to remove existing
  "cold" historical data that is not in a row affected by the normal compaction
  process will be added in a future release.</p>
</div>
</li>
<li>
<p>Most of Kudu&#8217;s command line tools have been consolidated under a new
top-level <code>kudu</code> tool. This reduces the number of large binaries distributed
with Kudu and also includes much-improved help output.</p>
</li>
<li>
<p>The Kudu Flume Sink now supports processing events containing Avro-encoded
records, using the new <code>AvroKuduOperationsProducer</code>.</p>
</li>
<li>
<p>Administrative tools including <code>kudu cluster ksck</code> now support running
against multi-master Kudu clusters.</p>
</li>
<li>
<p>The output of the <code>ksck</code> tool is now colorized and much easier to read.</p>
</li>
<li>
<p>The C&#43;&#43; client API now supports writing data in <code>AUTO_FLUSH_BACKGROUND</code> mode.
This can provide higher throughput for ingest workloads.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_optimizations_and_improvements_7"><a class="link" href="#_optimizations_and_improvements_7">Optimizations and improvements</a></h3>
<div class="ulist">
<ul>
<li>
<p>The performance of comparison predicates on dictionary-encoded columns has
been substantially optimized. Users are encouraged to use dictionary encoding
on any string or binary columns with low cardinality, especially if these
columns will be filtered with predicates.</p>
</li>
<li>
<p>The Java client is now able to prune partitions from scanners based on the
provided predicates. For example, an equality predicate on a hash-partitioned
column will now only access those tablets that could possibly contain matching
data. This is expected to improve performance for the Spark integration as well
as applications using the Java client API.</p>
</li>
<li>
<p>The performance of compaction selection in the tablet server has been
substantially improved. This can increase the efficiency of the background
maintenance threads and improve overall throughput of heavy write workloads.</p>
</li>
<li>
<p>The policy by which the tablet server retains write-ahead log (WAL) files has
been improved so that it takes into account other replicas of the tablet.
This should help mitigate the spurious eviction of tablet replicas on machines
that temporarily lag behind the other replicas.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_wire_protocol_compatibility_2"><a class="link" href="#_wire_protocol_compatibility_2">Wire protocol compatibility</a></h3>
<div class="paragraph">
<p>Kudu 1.0.0 maintains client-server wire-compatibility with previous releases.
Applications using the Kudu client libraries may be upgraded either
before, at the same time, or after the Kudu servers.</p>
</div>
<div class="paragraph">
<p>Kudu 1.0.0 does <em>not</em> maintain server-server wire compatibility with previous
releases. Therefore, rolling upgrades between earlier versions of Kudu and
Kudu 1.0.0 are not supported.</p>
</div>
</div>
<div class="sect2">
<h3 id="rn_1.0.0_incompatible_changes"><a class="link" href="#rn_1.0.0_incompatible_changes">Incompatible changes in Kudu 1.0.0</a></h3>
<div class="sect3">
<h4 id="_command_line_tools_2"><a class="link" href="#_command_line_tools_2">Command line tools</a></h4>
<div class="ulist">
<ul>
<li>
<p>The <code>kudu-pbc-dump</code> tool has been removed. The same functionality is now
implemented as <code>kudu pbc dump</code>.</p>
</li>
<li>
<p>The <code>kudu-ksck</code> tool has been removed. The same functionality is now
implemented as <code>kudu cluster ksck</code>.</p>
</li>
<li>
<p>The <code>cfile-dump</code> tool has been removed. The same functionality is now
implemented as <code>kudu fs cfile dump</code>.</p>
</li>
<li>
<p>The <code>log-dump</code> tool has been removed. The same functionality is now
implemented as <code>kudu wal dump</code> and <code>kudu local_replica dump wals</code>.</p>
</li>
<li>
<p>The <code>kudu-admin</code> tool has been removed. The same functionality is now
implemented within <code>kudu table</code> and <code>kudu tablet</code>.</p>
</li>
<li>
<p>The <code>kudu-fs_dump</code> tool has been removed. The same functionality is now
implemented as <code>kudu fs dump</code>.</p>
</li>
<li>
<p>The <code>kudu-ts-cli</code> tool has been removed. The same functionality is now
implemented within <code>kudu master</code>, <code>kudu remote_replica</code>, and <code>kudu tserver</code>.</p>
</li>
<li>
<p>The <code>kudu-fs_list</code> tool has been removed and some similar useful
functionality has been moved under 'kudu local_replica'.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_configuration_flags"><a class="link" href="#_configuration_flags">Configuration flags</a></h4>
<div class="ulist">
<ul>
<li>
<p>Some configuration flags are now marked as 'unsafe' and 'experimental'. Such flags
are disallowed by default. Users may access these flags by enabling the additional
flags <code>--unlock_unsafe_flags</code> and <code>--unlock_experimental_flags</code>. Usage of such flags
is not recommended, as the flags may be removed or modified with no deprecation period
and without notice in future Kudu releases.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_client_apis_cjavapython_2"><a class="link" href="#_client_apis_cjavapython_2">Client APIs (C&#43;&#43;/Java/Python)</a></h4>
<div class="ulist">
<ul>
<li>
<p>The <code>TIMESTAMP</code> column type has been renamed to <code>UNIXTIME_MICROS</code> in order to
reduce confusion between Kudu&#8217;s timestamp support and the timestamps supported
by other systems such as Apache Hive and Apache Impala (incubating). Existing
tables will automatically be updated to use the new name for the type.</p>
<div class="paragraph">
<p>Clients upgrading to the new client libraries must move to the new name for
  the type.  Clients using old client libraries will continue to operate using
  the old type name, even when connected to clusters that have been
  upgraded. Similarly, if clients are upgraded before servers, existing
  timestamp columns will be available using the new type name.</p>
</div>
</li>
<li>
<p><code>KuduSession</code> methods in the C&#43;&#43; library are no longer advertised as thread-safe
to have one set of semantics for both C&#43;&#43; and Java Kudu client libraries.</p>
</li>
<li>
<p>The <code>KuduScanToken::TabletServers</code> method in the C&#43;&#43; library has been removed.
The same information can now be found in the KuduScanToken::tablet method.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_apache_flume_integration"><a class="link" href="#_apache_flume_integration">Apache Flume Integration</a></h4>
<div class="ulist">
<ul>
<li>
<p>The <code>KuduEventProducer</code> interface used to process Flume events into Kudu operations
for the Kudu Flume Sink has changed, and has been renamed <code>KuduOperationsProducer</code>.
The existing `KuduEventProducer`s have been updated for the new interface, and have
been renamed similarly.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_0.10.0"><a class="link" href="#rn_0.10.0">Release notes specific to 0.10.0</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 0.10.0 delivers a number of new features, bug fixes, and optimizations,
detailed below.</p>
</div>
<div class="paragraph">
<p>Kudu 0.10.0 maintains wire-compatibility with previous releases, meaning
that applications using the Kudu client libraries may be upgraded either
before, at the same time, or after the Kudu servers. However, if you begin
using new features of Kudu 0.10.0 such as manually range-partitioned tables,
you must first upgrade all clients to this release.</p>
</div>
<div class="paragraph">
<p>This release does not maintain full Java API or ABI compatibility with
Kudu 0.9.x due to a package rename and some other small changes. See below for details.</p>
</div>
<div class="paragraph">
<p>See also <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20KUDU%20AND%20status%20%3D%20Resolved
%20AND%20fixVersion%20%3D%200.10.0">JIRAs resolved
for Kudu 0.10.0</a> and <a href="https://github.com/apache/kudu/compare/0.9.1...0.10.0">Git
changes between 0.9.1 and 0.10.0</a>.</p>
</div>
<div class="sect2">
<h3 id="rn_0.10.0_incompatible_changes"><a class="link" href="#rn_0.10.0_incompatible_changes">Incompatible changes and deprecated APIs in 0.10.0</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="http://gerrit.cloudera.org:8080/3737">Gerrit #3737</a> The Java client has been repackaged
under <code>org.apache.kudu</code> instead of <code>org.kududb</code>. Import statements for Kudu classes must
be modified in order to compile against 0.10.0. Wire compatibility is maintained.</p>
</li>
<li>
<p><a href="https://gerrit.cloudera.org/#/c/3055/">Gerrit #3055</a> The Java client&#8217;s
synchronous API methods now throw <code>KuduException</code> instead of <code>Exception</code>.
Existing code that catches <code>Exception</code> should still compile, but introspection of an
exception&#8217;s message may be impacted. This change was made to allow thrown exceptions to be
queried more easily using <code>KuduException.getStatus</code> and calling one of <code>Status&#8217;s methods.
For example, an operation that tries to delete a table that doesn&#8217;t exist would return a
`Status</code> that returns true when queried on <code>isNotFound()</code>.</p>
</li>
<li>
<p>The Java client&#8217;s <code>KuduTable.getTabletsLocations</code> set of methods is now
deprecated. Additionally, they now take an exclusive end partition key instead
of an inclusive key. Applications are encouraged to use the scan tokens API
instead of these methods in the future.</p>
</li>
<li>
<p>The C++ API for specifying split points on range-partitioned tables has been improved
to make it easier for callers to properly manage the ownership of the provided rows.</p>
<div class="paragraph">
<p>The <code>TableCreator::split_rows</code> API took a <code>vector&lt;const KuduPartialRow*&gt;</code>, which
  made it very difficult for the calling application to do proper error handling with
  cleanup when setting the fields of the <code>KuduPartialRow</code>. This API has been now been
  deprecated and replaced by a new method <code>TableCreator::add_range_split</code> which allows
  easier use of smart pointers for safe memory management.</p>
</div>
</li>
<li>
<p>The Java client&#8217;s internal buffering has been reworked. Previously, the number of
buffered write operations was constrained on a per-tablet-server basis. Now, the configured
maximum buffer size constrains the total number of buffered operations across all
tablet servers in the cluster. This provides a more consistent bound on the memory
usage of the client regardless of the size of the cluster to which it is writing.</p>
<div class="paragraph">
<p>This change can negatively affect the write performance of Java clients which rely on
  buffered writes. Consider using the <code>setMutationBufferSpace</code> API to increase a
  session&#8217;s maximum buffer size if write performance seems to be degraded after upgrading
  to Kudu 0.10.0.</p>
</div>
</li>
<li>
<p>The "remote bootstrap" process used to copy a tablet replica from one host to
another has been renamed to "Tablet Copy". This resulted in the renaming of
several RPC metrics. Any users previously explicitly fetching or monitoring metrics
related to Remote Bootstrap should update their scripts to reflect the new names.</p>
</li>
<li>
<p>The SparkSQL datasource for Kudu no longer supports mode <code>Overwrite</code>. Users should
use the new <code>KuduContext.upsertRows</code> method instead. Additionally, inserts using the
datasource are now upserts by default. The older behavior can be restored by setting
the <code>operation</code> parameter to <code>insert</code>.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.10.0_new_features"><a class="link" href="#rn_0.10.0_new_features">New features</a></h3>
<div class="ulist">
<ul>
<li>
<p>Users may now manually manage the partitioning of a range-partitioned table.
When a table is created, the user may specify a set of range partitions that
do not cover the entire available key space. A user may add or drop range
partitions to existing tables.</p>
<div class="paragraph">
<p>This feature can be particularly helpful with time series workloads in which
  new partitions can be created on an hourly or daily basis. Old partitions
  may be efficiently dropped if the application does not need to retain historical
  data past a certain point.</p>
</div>
<div class="paragraph">
<p>This feature is considered experimental for the 0.10 release. More details of
  the new feature can be found in the accompanying
  <a href="https://kudu.apache.org/2016/08/23/new-range-partitioning-features.html">blog post</a>.</p>
</div>
</li>
<li>
<p>Support for running Kudu clusters with multiple masters has been stabilized.
Users may start a cluster with three or five masters to provide fault tolerance
despite a failure of one or two masters, respectively.</p>
<div class="paragraph">
<p>Note that certain tools (e.g. <code>ksck</code>) are still lacking complete support for
  multiple masters. These deficiencies will be addressed in a following release.</p>
</div>
</li>
<li>
<p>Kudu now supports the ability to reserve a certain amount of free disk space
in each of its configured data directories. If a directory&#8217;s free disk space
drops to less than the configured minimum, Kudu will stop writing to that
directory until space becomes available. If no space is available in any
configured directory, Kudu will abort.</p>
<div class="paragraph">
<p>This feature may be configured using the <code>fs_data_dirs_reserved_bytes</code> and
  <code>fs_wal_dir_reserved_bytes</code> flags.</p>
</div>
</li>
<li>
<p>The Spark integration&#8217;s <code>KuduContext</code> now supports four new methods for writing to
Kudu tables: <code>insertRows</code>, <code>upsertRows</code>, <code>updateRows</code>, and <code>deleteRows</code>. These are
now the preferred way to write to Kudu tables from Spark.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.10.0_improvements"><a class="link" href="#rn_0.10.0_improvements">Improvements and optimizations</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1516">KUDU-1516</a> The <code>kudu-ksck</code> tool
has been improved and now detects problems such as when a tablet does not have
a majority of replicas on live tablet servers, or if those replicas aren’t in a
good state. Users who currently depend on the tool to detect inconsistencies may now see
failures when before they wouldn&#8217;t see any.</p>
</li>
<li>
<p><a href="https://gerrit.cloudera.org:8080/3477">Gerrit #3477</a> The way operations are buffered in
the Java client has been reworked. Previously, the session&#8217;s buffer size was set per tablet, meaning that a buffer
size of 1,000 for 10 tablets being written to allowed for 10,000 operations to be buffered at the
same time. With this change, all the tablets share one buffer, so users might need to set a
bigger buffer size in order to reach the same level of performance as before.</p>
</li>
<li>
<p><a href="https://gerrit.cloudera.org/#/c/3674/">Gerrit #3674</a> Added LESS and GREATER options for
column predicates.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1444">KUDU-1444</a> added support for passing
back basic per-scan metrics (e.g cache hit rate) from the server to the C++ client. See the
<code>KuduScanner::GetResourceMetrics()</code> API for detailed usage. This feature will be supported
in the Java client API in a future release.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1446">KUDU-1446</a> improved the order in
which the tablet server evaluates predicates, so that predicates on smaller columns
are evaluated first. This may improve performance on queries which apply predicates
on multiple columns of different sizes.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1398">KUDU-1398</a> improved the storage
efficiency of Kudu&#8217;s internal primary key indexes. This optimization should decrease space
usage and improve random access performance, particularly for workloads with lengthy
primary keys.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.10.0_fixed_issues"><a class="link" href="#rn_0.10.0_fixed_issues">Fixed Issues</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://gerrit.cloudera.org/#/c/3541/">Gerrit #3541</a> Fixed a problem in the Java client
whereby an RPC could be dropped when a connection to a tablet server or master was forcefully
closed on the server-side while RPCs to that server were in the process of being encoded.
The effect was that the RPC would not be sent, and users of the synchronous API would receive
a <code>TimeoutException</code>. Several other Java client bugs which could cause similar spurious timeouts
were also fixed in this release.</p>
</li>
<li>
<p><a href="https://gerrit.cloudera.org/<mark>/c/3724/">Gerrit #3724</a> Fixed a problem in the Java client
whereby an RPC could be dropped when a socket timeout was fired while that RPC was being sent to
a tablet server or master. This would manifest itself in the same way
<a href="https://gerrit.cloudera.org/</mark>/c/3541/">Gerrit #3541</a>.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1538">KUDU-1538</a> fixed a bug in which recycled
block identifiers could cause the tablet server to lose data. Following this bug fix, block
identifiers will no longer be reused.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.10.0_changes"><a class="link" href="#rn_0.10.0_changes">Other noteworthy changes</a></h3>
<div class="ulist">
<ul>
<li>
<p>This is the first release of Apache Kudu as a top-level (non-incubating)
project!</p>
</li>
<li>
<p>The default false positive rate for Bloom filters has been changed
from 1% to 0.01%. This will increase the space consumption of Bloom
filters by a factor of two (from approximately 10 bits per row to
approximately 20 bits per row). This is expected to substantially
improve the performance of random-write workloads at the cost of an
incremental increase in disk space usage.</p>
</li>
<li>
<p>The Kudu C++ client library now has Doxygen-based
<a href="http://kudu.apache.org/cpp-client-api/">API documentation</a>
available online.</p>
</li>
<li>
<p>Kudu now
<a href="http://kudu.apache.org/2016/06/17/raft-consensus-single-node.html">
uses the Raft consensus algorithm even for unreplicated tables</a>.
This change simplifies code and will also allow administrators to enable
replication on a previously-unreplicated table. This change is internal and
should not be visible to users.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_0.9.1"><a class="link" href="#rn_0.9.1">Release notes specific to 0.9.1</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 0.9.1 delivers incremental bug fixes over Kudu 0.9.0. It is fully compatible with
Kudu 0.9.0.</p>
</div>
<div class="paragraph">
<p>See also <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20KUDU%20AND%20status%20%3D%20Resolved
%20AND%20fixVersion%20%3D%200.9.1">JIRAs resolved
for Kudu 0.9.1</a> and <a href="https://github.com/apache/kudu/compare/0.9.0...0.9.1">Git
changes between 0.9.0 and 0.9.1</a>.</p>
</div>
<div class="sect2">
<h3 id="rn_0.9.1_fixed_issues"><a class="link" href="#rn_0.9.1_fixed_issues">Fixed Issues</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1469">KUDU-1469</a> fixed a bug in
our Raft consensus implementation that could cause a tablet to stop making progress after a leader
election.</p>
</li>
<li>
<p><a href="https://gerrit.cloudera.org/#/c/3456/">Gerrit #3456</a> fixed a bug in which
servers under high load could store metric information in incorrect memory
locations, causing crashes or data corruption.</p>
</li>
<li>
<p><a href="https://gerrit.cloudera.org/#/c/3457/">Gerrit #3457</a> fixed a bug in which
errors from the Java client would carry an incorrect error message.</p>
</li>
<li>
<p>Several other small bug fixes were backported to improve stability.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_0.9.0"><a class="link" href="#rn_0.9.0">Release notes specific to 0.9.0</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 0.9.0 delivers incremental features, improvements, and bug fixes over the previous versions.</p>
</div>
<div class="paragraph">
<p>See also <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20KUDU%20AND%20status%20%3D%20Resolved
%20AND%20fixVersion%20%3D%200.9.0">JIRAs resolved
for Kudu 0.9.0</a> and <a href="https://github.com/apache/kudu/compare/0.8.0...0.9.0">Git
changes between 0.8.0 and 0.9.0</a>.</p>
</div>
<div class="sect2">
<h3 id="rn_0.9.0_incompatible_changes"><a class="link" href="#rn_0.9.0_incompatible_changes">Incompatible changes</a></h3>
<div class="ulist">
<ul>
<li>
<p>The <code>KuduTableInputFormat</code> command has changed the way in which it handles
scan predicates, including how it serializes predicates to the job configuration
object. The new configuration key is <code>kudu.mapreduce.encoded.predicate</code>. Clients
using the <code>TableInputFormatConfigurator</code> are not affected.</p>
</li>
<li>
<p>The <code>kudu-spark</code> sub-project has been renamed to follow naming conventions for
Scala. The new name is <code>kudu-spark_2.10</code>.</p>
</li>
<li>
<p>Default table partitioning has been removed. All tables must now be created
with explicit partitioning. Existing tables are unaffected. See the
<a href="schema_design.html#no_default_partitioning">schema design guide</a> for more
details.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.9.0_new_features"><a class="link" href="#rn_0.9.0_new_features">New features</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1002">KUDU-1002</a> Added support for
<code>UPSERT</code> operations, whereby a row is inserted if it does not already exist, but
updated if it does. Support for <code>UPSERT</code> is included in Java, C++, and Python APIs,
but not in Impala.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1306">KUDU-1306</a> Scan token API
for creating partition-aware scan descriptors. This API simplifies executing
parallel scans for clients and query engines.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/#/c/2848/">Gerrit 2848</a> Added a kudu datasource
for Spark. This datasource uses the Kudu client directly instead of
using the MapReduce API. Predicate pushdowns for <code>spark-sql</code> and Spark filters are
included, as well as parallel retrieval for multiple tablets and column projections.
See an example of <a href="developing.html#_kudu_integration_with_spark">Kudu integration with Spark</a>.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/#/c/2992/">Gerrit 2992</a> Added the ability
to update and insert from Spark using a Kudu datasource.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.9.0_improvements"><a class="link" href="#rn_0.9.0_improvements">Improvements</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1415">KUDU-1415</a> Added statistics in the Java
client such as the number of bytes written and the number of operations applied.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1451">KUDU-1451</a> Improved tablet server restart
time when the tablet server needs to clean up of a lot previously deleted tablets. Tablets are
now cleaned up after they are deleted.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.9.0_fixed_issues"><a class="link" href="#rn_0.9.0_fixed_issues">Fixed Issues</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-678">KUDU-678</a> Fixed a leak that happened during
DiskRowSet compactions where tiny blocks were still written to disk even if there were no REDO
records. With the default block manager, it usually resulted in block containers with thousands
of tiny blocks.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1437">KUDU-1437</a> Fixed a data corruption issue
that occured after compacting sequences of negative INT32 values in a column that
was configured with RLE encoding.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.9.0_changes"><a class="link" href="#rn_0.9.0_changes">Other noteworthy changes</a></h3>
<div class="paragraph">
<p>All Kudu clients have longer default timeout values, as listed below.</p>
</div>
<div class="ulist">
<div class="title">Java</div>
<ul>
<li>
<p>The default operation timeout and the default admin operation timeout
are now set to 30 seconds instead of 10.</p>
</li>
<li>
<p>The default socket read timeout is now 10 seconds instead of 5.</p>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">C++</div>
<ul>
<li>
<p>The default admin timeout is now 30 seconds instead of 10.</p>
</li>
<li>
<p>The default RPC timeout is now 10 seconds instead of 5.</p>
</li>
<li>
<p>The default scan timeout is now 30 seconds instead of 15.</p>
</li>
<li>
<p>Some default settings related to I/O behavior during flushes and compactions have been changed:
The default for <code>flush_threshold_mb</code> has been increased from 64MB to 1000MB. The default
<code>cfile_do_on_finish</code> has been changed from <code>close</code> to <code>flush</code>.
<a href="http://getkudu.io/2016/04/26/ycsb.html">Experiments using YCSB</a> indicate that these
values will provide better throughput for write-heavy applications on typical server hardware.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_0.8.0"><a class="link" href="#rn_0.8.0">Release notes specific to 0.8.0</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 0.8.0 delivers incremental features, improvements, and bug fixes over the previous versions.</p>
</div>
<div class="paragraph">
<p>See also <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20KUDU%20AND%20status%20%3D%20Resolved
%20AND%20fixVersion%20%3D%200.8.0">JIRAs resolved
for Kudu 0.8.0</a> and <a href="https://github.com/apache/kudu/compare/0.7.1...0.8.0">Git
changes between 0.7.1 and 0.8.0</a>.</p>
</div>
<div class="paragraph">
<p>To upgrade to Kudu 0.8.0, see <a href="installation.html#upgrade">Upgrade from 0.7.1 to 0.8.0</a>.</p>
</div>
<div class="sect2">
<h3 id="rn_0.8.0_incompatible_changes"><a class="link" href="#rn_0.8.0_incompatible_changes">Incompatible changes</a></h3>
<div class="ulist">
<ul>
<li>
<p>0.8.0 clients are not fully compatible with servers running Kudu 0.7.1 or lower.
In particular, scans that specify column predicates will fail. To work around this
issue, upgrade all Kudu servers before upgrading clients.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.8.0_new_features"><a class="link" href="#rn_0.8.0_new_features">New features</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-431">KUDU-431</a> A simple Flume
sink has been implemented.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.8.0_improvements"><a class="link" href="#rn_0.8.0_improvements">Improvements</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-839">KUDU-839</a> Java RowError now uses an enum error code.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/#/c/2138/">Gerrit 2138</a> The handling of
column predicates has been re-implemented in the server and clients.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1379">KUDU-1379</a> Partition pruning
has been implemented for C++ clients (but not yet for the Java client). This feature
allows you to avoid reading a tablet if you know it does not serve the row keys you are querying.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/#/c/2641">Gerrit 2641</a> Kudu now uses
<code>earliest-deadline-first</code> RPC scheduling and rejection. This changes the behavior
of the RPC service queue to prevent unfairness when processing a backlog of RPC
threads and to increase the likelihood that an RPC will be processed before it
can time out.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.8.0_fixed_issues"><a class="link" href="#rn_0.8.0_fixed_issues">Fixed Issues</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1337">KUDU-1337</a> Tablets from tables
that were deleted might be unnecessarily re-bootstrapped when the leader gets the
notification to delete itself after the replicas do.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-969">KUDU-969</a> If a tablet server
shuts down while compacting a rowset and receiving updates for it, it might immediately
crash upon restart while bootstrapping that rowset&#8217;s tablet.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1354">KUDU-1354</a> Due to a bug in Kudu&#8217;s
MVCC implementation where row locks were released before the MVCC commit happened,
flushed data would include out-of-order transactions, triggering a crash on the
next compaction.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1322">KUDU-1322</a> The C++ client
now retries write operations if the tablet it is trying to reach has already been
deleted.</p>
</li>
<li>
<p><a href="http://gerrit.cloudera.org:8080/#/c/2571/">Gerrit 2571</a> Due to a bug in the
Java client, users were unable to close the <code>kudu-spark</code> shell because of
lingering non-daemon threads.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.8.0_changes"><a class="link" href="#rn_0.8.0_changes">Other noteworthy changes</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="http://gerrit.cloudera.org:8080/#/c/2239/">Gerrit 2239</a> The concept of "feature flags"
was introduced in order to manage compatibility between different
Kudu versions. One case where this is helpful is if a newer client attempts to use
a feature unsupported by the currently-running tablet server. Rather than receiving
a cryptic error, the user gets an error message that is easier to interpret.
This is an internal change for Kudu system developers and requires no action by
users of the clients or API.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_0.7.1"><a class="link" href="#rn_0.7.1">Release notes specific to 0.7.1</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 0.7.1 is a bug fix release for 0.7.0.</p>
</div>
<div class="sect2">
<h3 id="rn_0.7.1_fixed_issues"><a class="link" href="#rn_0.7.1_fixed_issues">Fixed Issues</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1325">KUDU-1325</a> fixes a tablet server crash that could
occur during table deletion. In some cases, while a table was being deleted, other replicas would
attempt to re-replicate tablets to servers that had already processed the deletion. This could
trigger a race condition that caused a crash.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1341">KUDU-1341</a> fixes a potential data corruption and
crash that could happen shortly after tablet server restarts in workloads that repeatedly delete
and re-insert rows with the same primary key. In most cases, this corruption affected only a single
replica and could be repaired by re-replicating from another.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1343">KUDU-1343</a> fixes a bug in the Java client that
occurs when a scanner has to scan multiple batches from one tablet and then start scanning from
another. In particular, this would affect any scans using the Java client that read large numbers
of rows from multi-tablet tables.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1345">KUDU-1345</a> fixes a bug where in some cases the
hybrid clock could jump backwards, resulting in a crash followed by an inability to
restart the affected tablet server.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1360">KUDU-1360</a> fixes a bug in the kudu-spark module
which prevented reading rows with <code>NULL</code> values.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_0.7.0"><a class="link" href="#rn_0.7.0">Release notes specific to 0.7.0</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 0.7.0 is the first release done as part of the Apache Incubator and includes a number
of changes, new features, improvements, and fixes.</p>
</div>
<div class="paragraph">
<p>See also <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20KUDU%20AND%20status%20in%20
(Resolved)%20AND%20fixVersion%20%3D%200.7.0%20ORDER%20BY%20key%20ASC">JIRAs resolved
for Kudu 0.7.0</a> and <a href="https://github.com/apache/kudu/compare/branch-0.6.0...branch-0.7.0">Git
changes between 0.6.0 and 0.7.0</a>.</p>
</div>
<div class="paragraph">
<p>The upgrade instructions can be found at <a href="installation.html#upgrade">Upgrade from 0.6.0 to 0.7.0</a>.</p>
</div>
<div class="sect2">
<h3 id="rn_0.7.0_incompatible_changes"><a class="link" href="#rn_0.7.0_incompatible_changes">Incompatible changes</a></h3>
<div class="ulist">
<ul>
<li>
<p>The C++ client includes a new API, <code>KuduScanBatch</code>, which performs better when a
large number of small rows are returned in a batch. The old API of <code>vector&lt;KuduRowResult&gt;</code>
is deprecated.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This change is API-compatible but <strong>not</strong> ABI-compatible.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>The default replication factor has been changed from 1 to 3. Existing tables will
continue to use the replication factor they were created with. Applications that create
tables may not work properly if they assume a replication factor of 1 and fewer than
3 replicas are available. To use the previous default replication factor, start the
master with the configuration flag <code>--default_num_replicas=1</code>.</p>
</li>
<li>
<p>The Python client has been completely rewritten, with a focus on improving code
quality and testing. The read path (scanners) has been improved by adding many of
the features already supported by the C++ and Java clients. The Python client is no
longer considered experimental.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.7.0_new_features"><a class="link" href="#rn_0.7.0_new_features">New features</a></h3>
<div class="ulist">
<ul>
<li>
<p>With the goal of Spark integration in mind, a new <code>kuduRDD</code> API has been added,
which wraps <code>newAPIHadoopRDD</code> and includes a default source for Spark SQL.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.7.0_improvements"><a class="link" href="#rn_0.7.0_improvements">Improvements</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Java client includes new methods <code>countPendingErrors()</code> and
<code>getPendingErrors()</code> on <code>KuduSession</code>. These methods allow you to count and
retrieve outstanding row errors when configuring sessions with <code>AUTO_FLUSH_BACKGROUND</code>.</p>
</li>
<li>
<p>New server-level metrics allow you to monitor CPU usage and context switching.</p>
</li>
<li>
<p>Kudu now builds on RHEL 7, CentOS 7, and SLES 12. Extra instructions are included
for SLES 12.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.7.0_fixed_issues"><a class="link" href="#rn_0.7.0_fixed_issues">Fixed Issues</a></h3>
<div class="ulist">
<ul>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1288">KUDU-1288</a> fixes a severe file descriptor
leak, which could previously only be resolved by restarting the tablet server.</p>
</li>
<li>
<p><a href="https://issues.apache.org/jira/browse/KUDU-1250">KUDU-1250</a> fixes a hang in the Java
client when processing an in-flight batch and the previous batch encountered an error.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.7.0_changes"><a class="link" href="#rn_0.7.0_changes">Other noteworthy changes</a></h3>
<div class="ulist">
<ul>
<li>
<p>The file block manager&#8217;s performance was improved, but it is still not recommended for
real-world use.</p>
</li>
<li>
<p>The master now attempts to spread tablets more evenly across the cluster during
table creation. This has no impact on existing tables, but will improve the speed
at which under-replicated tablets are re-replicated after a tablet server failure.</p>
</li>
<li>
<p>All licensing documents have been modified to adhere to ASF guidelines.</p>
</li>
<li>
<p>Kudu now requires an out-of-tree build directory. Review the build instructions
for additional information.</p>
</li>
<li>
<p>The <code>C` client library is now explicitly built against the
link:https://gcc.gnu.org/onlinedocs/libstdc/manual/using_dual_abi.html[old gcc5 ABI].
If you use gcc5 to build a Kudu application, your application must use the old ABI
as well. This is typically achieved by defining the `_GLIBCXX_USE_CXX11_ABI</code> macro
at compile-time when building your application. For more information, see the
previous link and link:http://developerblog.redhat.com/2015/02/05/gcc5-and-the-c11-abi/.</p>
</li>
<li>
<p>The Python client is no longer considered experimental.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_0.6.0"><a class="link" href="#rn_0.6.0">Release notes specific to 0.6.0</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>The 0.6.0 release contains incremental improvements and bug fixes. The most notable
changes are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The Java client&#8217;s CreateTableBuilder and AlterTableBuilder classes have been renamed
to CreateTableOptions and AlterTableOptions. Their methods now also return <code>this</code> objects,
allowing them to be used as builders.</p>
</li>
<li>
<p>The Java client&#8217;s AbstractKuduScannerBuilder#maxNumBytes() setter is now called
batchSizeBytes as is the corresponding property in AsyncKuduScanner. This makes it
consistent with the C++ client.</p>
</li>
<li>
<p>The "kudu-admin" tool can now list and delete tables via its new subcommands
"list_tables" and "delete_table &lt;table_name&gt;".</p>
</li>
<li>
<p>OSX is now supported for single-host development. Please consult its specific installation
instructions in <a href="installation.html#osx_from_source">OS X</a>.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_0.5.0"><a class="link" href="#rn_0.5.0">Release Notes Specific to 0.5.0</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 0.5.0 was the first public release. As such, no improvements or changes were
noted in its release notes.</p>
</div>
</div>
</div>
    </div>
    <div class="col-md-3">

  <div id="toc" data-spy="affix" data-offset-top="70">
  <ul>

      <li>

          <a href="index.html">Introducing Kudu</a> 
      </li> 
      <li>

          <a href="release_notes.html">Kudu Release Notes</a> 
      </li> 
      <li>

          <a href="quickstart.html">Quickstart Guide</a> 
      </li> 
      <li>

          <a href="installation.html">Installation Guide</a> 
      </li> 
      <li>

          <a href="configuration.html">Configuring Kudu</a> 
      </li> 
      <li>

          <a href="hive_metastore.html">Using the Hive Metastore with Kudu</a> 
      </li> 
      <li>

          <a href="kudu_impala_integration.html">Using Impala with Kudu</a> 
      </li> 
      <li>

          <a href="administration.html">Administering Kudu</a> 
      </li> 
      <li>

          <a href="troubleshooting.html">Troubleshooting Kudu</a> 
      </li> 
      <li>

          <a href="developing.html">Developing Applications with Kudu</a> 
      </li> 
      <li>

          <a href="schema_design.html">Kudu Schema Design</a> 
      </li> 
      <li>

          <a href="scaling_guide.html">Kudu Scaling Guide</a> 
      </li> 
      <li>

          <a href="security.html">Kudu Security</a> 
      </li> 
      <li>

          <a href="transaction_semantics.html">Kudu Transaction Semantics</a> 
      </li> 
      <li>

          <a href="background_tasks.html">Background Maintenance Tasks</a> 
      </li> 
      <li>

          <a href="configuration_reference.html">Kudu Configuration Reference</a> 
      </li> 
      <li>

          <a href="command_line_tools_reference.html">Kudu Command Line Tools Reference</a> 
      </li> 
      <li>

          <a href="metrics_reference.html">Kudu Metrics Reference</a> 
      </li> 
      <li>

          <a href="known_issues.html">Known Issues and Limitations</a> 
      </li> 
      <li>

          <a href="contributing.html">Contributing to Kudu</a> 
      </li> 
      <li>

          <a href="export_control.html">Export Control Notice</a> 
      </li> 
  </ul>
  </div>
    </div>
  </div>
</div>
      <footer class="footer">
        <div class="row">
          <div class="col-md-9">
            <p class="small">
            Copyright &copy; 2020 The Apache Software Foundation.  Last updated 2021-09-09 20:25:46 +0200 
            </p>
            <p class="small">
            Apache Kudu, Kudu, Apache, the Apache feather logo, and the Apache Kudu
            project logo are either registered trademarks or trademarks of The
            Apache Software Foundation in the United States and other countries.
            </p>
          </div>
          <div class="col-md-3">
            <a class="pull-right" href="https://www.apache.org/events/current-event.html">
                <img src="https://www.apache.org/events/current-event-234x60.png"/>
            </a>
          </div>
        </div>
      </footer>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script>
      // Try to detect touch-screen devices. Note: Many laptops have touch screens.
      $(document).ready(function() {
        if ("ontouchstart" in document.documentElement) {
          $(document.documentElement).addClass("touch");
        } else {
          $(document.documentElement).addClass("no-touch");
        }
      });
    </script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
            integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
            crossorigin="anonymous"></script>
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-68448017-1', 'auto');
      ga('send', 'pageview');
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.1.0/anchor.js"></script>
    <script>
      anchors.options = {
        placement: 'right',
        visible: 'touch',
      };
      anchors.add();
    </script>
  </body>
</html>

