<!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="/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 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++ 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"><a class="link" href="#_optimizations_and_improvements">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"><a class="link" href="#_wire_protocol_compatibility">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"><a class="link" href="#_command_line_tools">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_c_java_python"><a class="link" href="#_client_apis_c_java_python">Client APIs (C++/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++ library are no longer advertised as thread-safe
to have one set of semantics for both C++ and Java Kudu client libraries.</p>
</li>
<li>
<p>The <code>KuduScanToken::TabletServers</code> method in the C++ 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="paragraph">
<p>To upgrade to Kudu 0.10.0, see <a href="#rn_0.10.0_upgrade">Upgrading from 0.9.x to 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 class="sect2">
<h3 id="rn_0.10.0_upgrade"><a class="link" href="#rn_0.10.0_upgrade">Upgrading from 0.9.x to 0.10.0</a></h3>
<div class="paragraph">
<p>Before upgrading, see <a href="#rn_0.10.0_incompatible_changes">Incompatible changes and deprecated APIs in 0.10.0</a> and
<a href="#rn_0.10.0_downgrade">Downgrading from 0.10.0 to 0.9.x</a>.</p>
</div>
<div class="paragraph">
<p>To upgrade from Kudu 0.9.x to Kudu 0.10.0, perform the following high-level
steps, which are detailed in the installation guide under
<a href="installation.html#upgrade_procedure">Upgrade Procedure</a>:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Shut down all Kudu services.</p>
</li>
<li>
<p>Install the new Kudu packages or parcels, or install Kudu 0.10.0 from source.</p>
</li>
<li>
<p>Restart all Kudu services.</p>
</li>
</ol>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
Rolling upgrades are not supported when upgrading from Kudu 0.9.x to
0.10.0 and they are known to cause errors in this release. If you run into a
problem after an accidental rolling upgrade, shut down all services and then
restart all services and the system should come up properly.
</td>
</tr>
</table>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For the duration of the Kudu Beta, upgrade instructions are generally
only given for going from the previous latest version to the newly released
version.
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.10.0_downgrade"><a class="link" href="#rn_0.10.0_downgrade">Downgrading from 0.10.0 to 0.9.x</a></h3>
<div class="paragraph">
<p>After upgrading to Kudu 0.10.0, it is possible to downgrade to 0.9.x with the
following exceptions:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Tables created in 0.10.0 will not be accessible after a downgrade to 0.9.x</p>
</li>
<li>
<p>A multi-master setup formatted in 0.10.0 may not be downgraded to 0.9.x</p>
</li>
</ol>
</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_upgrade"><a class="link" href="#rn_0.9.1_upgrade">Upgrading from 0.9.0 to 0.9.1</a></h3>
<div class="paragraph">
<p>Before upgrading to Kudu 0.9.1 from Kudu 0.8.0, please read the <a href="#rn_0.9.0">Release notes specific to 0.9.0</a>.</p>
</div>
<div class="paragraph">
<p>Upgrading from 0.8.0 or 0.9.0 to 0.9.1 is supported. To upgrade from Kudu 0.8.0
or Kudu 0.9.0 to Kudu 0.9.1, use the procedure documented in <a href="#rn_0.9.0_upgrade">Upgrading from 0.8.0 to 0.9.x</a>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For the duration of the Kudu Beta, upgrade instructions are generally
only given for going from the previous latest version to the newly released
version.
</td>
</tr>
</table>
</div>
</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="paragraph">
<p>To upgrade to Kudu 0.10.0, see <a href="#rn_0.9.0_upgrade">Upgrading from 0.8.0 to 0.9.x</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 class="sect2">
<h3 id="rn_0.9.0_upgrade"><a class="link" href="#rn_0.9.0_upgrade">Upgrading from 0.8.0 to 0.9.x</a></h3>
<div class="paragraph">
<p>Before upgrading, see <a href="#rn_0.9.0_incompatible_changes">Incompatible changes</a> and
<a href="#rn_0.9.0_client_compatibility">Client compatibility</a>. To upgrade from Kudu 0.8.0 to 0.9.0, perform
the following high-level steps, which are detailed in the installation guide
under <a href="installation.html#upgrade_procedure">Upgrade Procedure</a>:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Shut down all Kudu services.</p>
</li>
<li>
<p>Install the new Kudu packages or parcels, or install Kudu 0.9.1 from source.</p>
</li>
<li>
<p>Restart all Kudu services.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>It is technically possible to upgrade Kudu using rolling restarts, but it has not
been tested and is not recommended.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For the duration of the Kudu Beta, upgrade instructions are only given for going
from the previous latest version to the newest.
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="rn_0.9.0_client_compatibility"><a class="link" href="#rn_0.9.0_client_compatibility">Client compatibility</a></h3>
<div class="paragraph">
<p>Masters and tablet servers should be upgraded before clients are upgraded. For specific
information about client compatibility, see the <a href="#rn_0.9.0_incompatible_changes">Incompatible changes</a> section.</p>
</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.cloudera.org/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.cloudera.org/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.cloudera.org/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.cloudera.org/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.cloudera.org/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.cloudera.org/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 tabletsare 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 class="sect2">
<h3 id="_limitations"><a class="link" href="#_limitations">Limitations</a></h3>
<div class="paragraph">
<p>See also <a href="#beta_limitations">Limitations of the Kudu Public Beta</a>. Where applicable, this list adds to or overrides that
list.</p>
</div>
<div class="sect3">
<h4 id="_operating_system_limitations"><a class="link" href="#_operating_system_limitations">Operating System Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>Kudu 0.7 is known to work on RHEL 7 or 6.4 or newer, CentOS 7 or 6.4 or newer, Ubuntu
Trusty, and SLES 12. Other operating systems may work but have not been tested.</p>
</li>
</ul>
</div>
</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 class="sect2">
<h3 id="_limitations_2"><a class="link" href="#_limitations_2">Limitations</a></h3>
<div class="paragraph">
<p>See also <a href="#beta_limitations">Limitations of the Kudu Public Beta</a>. Where applicable, this list adds to or overrides that
list.</p>
</div>
<div class="sect3">
<h4 id="_operating_system_limitations_2"><a class="link" href="#_operating_system_limitations_2">Operating System Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>Kudu 0.6 is known to work on RHEL 6.4 or newer, CentOS 6.4 or newer, and Ubuntu
Trusty. Other operating systems may work but have not been tested.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_api_limitations"><a class="link" href="#_api_limitations">API Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>The Python client is still considered experimental.</p>
</li>
</ul>
</div>
</div>
</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="sect2">
<h3 id="_limitations_3"><a class="link" href="#_limitations_3">Limitations</a></h3>
<div class="paragraph">
<p>See also <a href="#beta_limitations">Limitations of the Kudu Public Beta</a>. Where applicable, this list adds to or overrides that
list.</p>
</div>
<div class="sect3">
<h4 id="_operating_system_limitations_3"><a class="link" href="#_operating_system_limitations_3">Operating System Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>Kudu 0.5 is known to work on RHEL 7 or 6.4 or newer, CentOS 7 or 6.4 or newer, Ubuntu
Trusty, and SLES 12. Other operating systems may work but have not been tested.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_api_limitations_2"><a class="link" href="#_api_limitations_2">API Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>The Python client is considered experimental.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_about_the_kudu_public_beta"><a class="link" href="#_about_the_kudu_public_beta">About the Kudu Public Beta</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Releases of Apache Kudu prior to 1.0 are considered beta. Do not run beta releases on production clusters.
During the public beta period, Kudu will be supported via a
<a href="https://issues.cloudera.org/projects/KUDU">public JIRA</a> and a public
<a href="http://mail-archives.apache.org/mod_mbox/kudu-user/">mailing list</a>, which will be
monitored by the Kudu development team and community members. Commercial support
is not available at this time.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>You can submit any issues or feedback related to your Kudu experience via either
the JIRA system or the mailing list. The Kudu development team and community members
will respond and assist as quickly as possible.</p>
</li>
<li>
<p>The Kudu team will work with early adopters to fix bugs and release new binary drops
when fixes or features are ready. However, we cannot commit to issue resolution or
bug fix delivery times during the public beta period, and it is possible that some
fixes or enhancements will not be selected for a release.</p>
</li>
<li>
<p>We can&#8217;t guarantee time frames or contents for future beta code drops. However,
they will be announced to the user group when they occur.</p>
</li>
<li>
<p>No guarantees are made regarding upgrades from this release to follow-on releases.
While multiple drops of beta code are planned, we can&#8217;t guarantee their schedules
or contents.</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="beta_limitations"><a class="link" href="#beta_limitations">Limitations of the Kudu Public Beta</a></h3>
<div class="paragraph">
<p>Items in this list may be amended or superseded by limitations listed in the release
notes for specific Kudu releases above.</p>
</div>
<div class="sect3">
<h4 id="_schema_limitations"><a class="link" href="#_schema_limitations">Schema Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>Kudu is primarily designed for analytic use cases and, in the beta release,
you are likely to encounter issues if a single row contains multiple kilobytes of data.</p>
</li>
<li>
<p>The columns which make up the primary key must be listed first in the schema.</p>
</li>
<li>
<p>Key columns cannot be altered. You must drop and recreate a table to change its keys.</p>
</li>
<li>
<p>Key columns must not be null.</p>
</li>
<li>
<p>Columns with <code>DOUBLE</code>, <code>FLOAT</code>, or <code>BOOL</code> types are not allowed as part of a
primary key definition.</p>
</li>
<li>
<p>Type and nullability of existing columns cannot be changed by altering the table.</p>
</li>
<li>
<p>A table’s primary key cannot be changed.</p>
</li>
<li>
<p>Dropping a column does not immediately reclaim space. Compaction must run first.
There is no way to run compaction manually, but dropping the table will reclaim the
space immediately.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_ingest_limitations"><a class="link" href="#_ingest_limitations">Ingest Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>Ingest via Sqoop or Flume is not supported in the public beta. The recommended
approach for bulk ingest is to use Impala’s <code>CREATE TABLE AS SELECT</code> functionality
or use the Kudu Java or C++ API.</p>
</li>
<li>
<p>Tables must be manually pre-split into tablets using simple or compound primary
keys. Automatic splitting is not yet possible. See
<a href="schema_design.html">Schema Design</a>.</p>
</li>
<li>
<p>Tablets cannot currently be merged. Instead, create a new table with the contents
of the old tables to be merged.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_replication_and_backup_limitations"><a class="link" href="#_replication_and_backup_limitations">Replication and Backup Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>Replication and failover of Kudu masters is considered experimental. It is
recommended to run a single master and periodically perform a manual backup of
its data directories.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_impala_limitations"><a class="link" href="#_impala_limitations">Impala Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>To use Kudu with Impala, you must install a special release of Impala called
Impala_Kudu. Obtaining and installing a compatible Impala release is detailed in Kudu&#8217;s
<a href="kudu_impala_integration.html">Impala Integration</a> documentation.</p>
</li>
<li>
<p>To use Impala_Kudu alongside an existing Impala instance, you must install using parcels.</p>
</li>
<li>
<p>Updates, inserts, and deletes via Impala are non-transactional. If a query
fails part of the way through, its partial effects will not be rolled back.</p>
</li>
<li>
<p>All queries will be distributed across all Impala hosts which host a replica
of the target table(s), even if a predicate on a primary key could correctly
restrict the query to a single tablet. This limits the maximum concurrency of
short queries made via Impala.</p>
</li>
<li>
<p>No timestamp and decimal type support.</p>
</li>
<li>
<p>The maximum parallelism of a single query is limited to the number of tablets
in a table. For good analytic performance, aim for 10 or more tablets per host
or use large tables.</p>
</li>
<li>
<p>Impala is only able to push down predicates involving <code>=</code>, <code>&#8656;</code>, <code>&gt;=</code>,
or <code>BETWEEN</code> comparisons between any column and a literal value, and <code>&lt;</code> and <code>&gt;</code>
for integer columns only. For example, for a table with an integer key <code>ts</code>, and
a string key <code>name</code>, the predicate <code>WHERE ts &gt;= 12345</code> will convert into an
efficient range scan, whereas <code>where name &gt; 'lipcon'</code> will currently fetch all
data from the table and evaluate the predicate within Impala.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_security_limitations"><a class="link" href="#_security_limitations">Security Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>Authentication and authorization are not included in the public beta.</p>
</li>
<li>
<p>Data encryption is not included in the public beta.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_client_and_api_limitations"><a class="link" href="#_client_and_api_limitations">Client and API Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>Potentially-incompatible C++, Java and Python API changes may be required during the
public beta.</p>
</li>
<li>
<p><code>ALTER TABLE</code> is not yet fully supported via the client APIs. More <code>ALTER TABLE</code>
operations will become available in future betas.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_application_integration_limitations"><a class="link" href="#_application_integration_limitations">Application Integration Limitations</a></h4>
<div class="ulist">
<ul>
<li>
<p>The Spark DataFrame implementation is not yet complete.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_other_known_issues"><a class="link" href="#_other_known_issues">Other Known Issues</a></h4>
<div class="paragraph">
<p>The following are known bugs and issues with the current release of Kudu. They will
be addressed in later beta releases.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If the Kudu master is configured with the <code>-log_fsync_all</code> option, tablet servers
and clients will experience frequent timeouts, and the cluster may become unusable.</p>
</li>
<li>
<p>If a tablet server has a very large number of tablets, it may take several minutes
to start up. It is recommended to limit the number of tablets per server to 100 or fewer.
Consider this limitation when pre-splitting your tables. If you notice slow start-up times,
you can monitor the number of tablets per server in the web UI.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_resources"><a class="link" href="#_resources">Resources</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><a href="http://getkudu.io">Kudu Website</a></p>
</li>
<li>
<p><a href="http://github.com/apache/kudu">Kudu GitHub Repository</a></p>
</li>
<li>
<p><a href="index.html">Kudu Documentation</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_installation_options"><a class="link" href="#_installation_options">Installation Options</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>A Quickstart VM is provided to get you up and running quickly.</p>
</li>
<li>
<p>You can install Kudu using provided deb/yum packages.</p>
</li>
<li>
<p>You can install Kudu, in clusters managed by Cloudera Manager, using parcels or deb/yum packages.</p>
</li>
<li>
<p>You can build Kudu from source.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For full installation details, see <a href="installation.html">Kudu Installation</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_next_steps"><a class="link" href="#_next_steps">Next Steps</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><a href="quickstart.html">Kudu Quickstart</a></p>
</li>
<li>
<p><a href="installation.html">Installing Kudu</a></p>
</li>
<li>
<p><a href="configuration.html">Configuring Kudu</a></p>
</li>
</ul>
</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">Getting Started with Kudu</a> 
      </li> 
      <li>

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

          <a href="configuration.html">Configuring 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="transaction_semantics.html">Kudu Transaction Semantics</a> 
      </li> 
      <li>

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

          <a href="style_guide.html">Kudu Documentation Style Guide</a> 
      </li> 
      <li>

          <a href="configuration_reference.html">Kudu Configuration Reference</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; 2019 The Apache Software Foundation.  Last updated 2016-11-14 15:52:59 PST 
            </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>

