blob: 4c5a6a8c7c63e4e22aac76154c781646e90635d4 [file] [log] [blame]
---
title: Apache Kudu 1.18.0 Release Notes
layout: default
active_nav: docs
last_updated: 'Last updated 2025-06-24 18:00:24 -0700'
---
<!--
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 1.18.0 Release Notes</h1>
<div class="sect1">
<h2 id="rn_1.18.0_upgrade_notes"><a class="link" href="#rn_1.18.0_upgrade_notes">Upgrade Notes</a></h2>
<div class="sectionbody">
</div>
</div>
<div class="sect1">
<h2 id="rn_1.18.0_obsoletions"><a class="link" href="#rn_1.18.0_obsoletions">Obsoletions</a></h2>
<div class="sectionbody">
</div>
</div>
<div class="sect1">
<h2 id="rn_1.18.0_deprecations"><a class="link" href="#rn_1.18.0_deprecations">Deprecations</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Support for Python versions 3.0 to 3.5 (inclusive) has been discontinued.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.18.0_new_features"><a class="link" href="#rn_1.18.0_new_features">New features</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Kudu now supports a new experimental cache eviction policy named Segmented LRU (SLRU). This
eviction policy helps the block cache better resist large scans that would otherwise evict
frequently accessed data.
(see <a href="https://issues.apache.org/jira/browse/KUDU-613">KUDU-613</a>).</p>
</li>
<li>
<p>A new experimental feature has been introduced to store LBM metadata in embedded RocksDB (see
<a href="https://issues.apache.org/jira/browse/KUDU-3371">KUDU-3371</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.18.0_improvements"><a class="link" href="#rn_1.18.0_improvements">Optimizations and improvements</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Several minor improvements to the performance of Kudu masters and tablet servers.</p>
</li>
<li>
<p>The internal server-side counter for the <code>Auto-Incrementing</code> column is now updated during the
server&#8217;s bootstrap process (see <a href="https://issues.apache.org/jira/browse/KUDU-1945">KUDU-1945</a>).</p>
</li>
<li>
<p>Tables with <code>Auto-Incrementing</code> column can now be backed up and restored
(see <a href="https://issues.apache.org/jira/browse/KUDU-1945">KUDU-1945</a>).</p>
</li>
<li>
<p>Added /ipki-ca-cert, /ipki-ca-cert-pem, and /ipki-ca-cert-der endpoints for the embedded
webserver of Kudu master to fetch the IPKI CA certificate used by a Kudu cluster.</p>
</li>
<li>
<p>Added client API to import JWT for client authentication (see
<a href="https://issues.apache.org/jira/browse/KUDU-3472">KUDU-3472</a>).</p>
</li>
<li>
<p>Added logic to detect unexpected jumps in the local/wall clock. This is enabled by default when
running at Azure VM instances which are known to be prone to such events. Otherwise, this
logic is disabled. For details, refer to the online documentation for --wall_clock_jump_detection
and --wall_clock_jump_threshold_sec flags.</p>
</li>
<li>
<p>Kudu can now be built with the default system gcc/g++-7 compiler on SLES15.</p>
</li>
<li>
<p>Kudu can now be built on macOS 14.x (Sonoma) with XCode 15 and newer.</p>
</li>
<li>
<p>Added validator for the --trusted_certificate_file flag to catch misconfigurations
(such as pointing to a non-existing file) early (see
<a href="https://issues.apache.org/jira/browse/KUDU-3392">KUDU-3392</a>).</p>
</li>
<li>
<p>Added a new metric to track per-RPC timeouts. This helps in identifying if requests to a
particular RPC method timed out while being processed (see
<a href="https://issues.apache.org/jira/browse/KUDU-3514">KUDU-3514</a>).</p>
</li>
<li>
<p>Added a new metric for AcceptorPool&#8217;s dispatch timing. See the online documentation for the
acceptor_dispatch_times metric.</p>
</li>
<li>
<p>Unified logging on write requests rejected by tablet servers. This helps in troubleshooting
and post-mortem analysis.</p>
</li>
<li>
<p>Increased the backlog of listened RPC sockets up to 512. This helps in a very busy Kudu cluster
when many clients attempt to connect to the cluster concurrently.</p>
</li>
<li>
<p>Added Cache-Control, X-Content-Type-Options, and HSTS HTTP headers into Kudu embedded webserver&#8217;s
responses. For details, see the online documentation for --webserver_hsts_max_age_seconds and
--webserver_hsts_include_sub_domains flags.</p>
</li>
<li>
<p>Introduced rpc_listened_socket_rx_queue_size and rpc_pending_connections metrics for Kudu master
and tablet servers. For details, see the online documentation for the newly introduced metrics.</p>
</li>
<li>
<p>Updated the severity level of a few tablet-level metrics to bring them on-par with the rest of
metrics having similar semantics. See
<a href="https://github.com/apache/kudu/commit/35716499d">changelist 35716499d</a> for details.</p>
</li>
<li>
<p>Removed unnecessary memory allocation for ancient UNDO mutations. See
<a href="https://github.com/apache/kudu/commit/3bdaf50b5">changelist 3bdaf50b5</a> for details.</p>
</li>
<li>
<p>Apache Ranger client now accepts JVM arguments via --ranger_java_extra_args and a colon-separated
list of classpaths via --ranger_jar_path
(see <a href="https://issues.apache.org/jira/browse/KUDU-3503">KUDU-3503</a>
and <a href="https://issues.apache.org/jira/browse/KUDU-3359">KUDU-3359</a>).</p>
</li>
<li>
<p>Key materials for over-the-wire encryption can now be encrypted on disk without data-at-rest
encryption or file-system level encryption using --tsk_private_key_password_cmd and
--ipki_private_key_password_cmd (see <a href="https://issues.apache.org/jira/browse/KUDU-3448">KUDU-3448</a>).</p>
</li>
<li>
<p>Maintenance operations other than DRS or MRS flush could be scheduled now even if the server is
under memory pressure. Set run_non_memory_ops_prob to a value greater than 0 to enable it
(see <a href="https://issues.apache.org/jira/browse/KUDU-3407">KUDU-3407</a>).</p>
</li>
<li>
<p>Introduced new metrics for slow scans in tablet servers.</p>
</li>
<li>
<p>Buffer space limit in the Kudu Java client (KuduSession) is now configurable.</p>
</li>
<li>
<p>Compaction for soft-deleted tables is now disabled by default.</p>
</li>
<li>
<p>Several metrics have been introduced to track operations such as table creation, table deletion,
alter table schema, tablet scans, tablet copy, tablet replica election, and tablet replication.</p>
</li>
<li>
<p>Enhanced the robustness of key retrieval from Ranger.</p>
</li>
<li>
<p>Kudu now runs on AArch64 Ubuntu and RedHat.</p>
</li>
<li>
<p>Installation of the Kudu Python package has been simplified, removing the need for a manual Cython
installation; compatible versions are now automatically handled. Dependencies have been updated to
support Python 2.7 and 3.6-3.10, and test files are now excluded from the final package.</p>
</li>
<li>
<p>Per-session write operation metrics have been added to the Kudu Python client.</p>
</li>
<li>
<p>Support for UPSERT IGNORE has been added to the Kudu Python client
(see <a href="https://issues.apache.org/jira/browse/KUDU-3353">KUDU-3353</a>).</p>
</li>
<li>
<p>The Kudu C++ and Python client examples have been added to demonstrate the utilization of the
non-unique primary key feature.</p>
</li>
<li>
<p>Support for soft table deletion has been added to the Kudu Python client
(see <a href="https://issues.apache.org/jira/browse/KUDU-3326">KUDU-3326</a>).</p>
</li>
<li>
<p>Support for adding comments in ColumnSchema has been added to the Kudu Python client.</p>
</li>
<li>
<p>Support for immutable columns has been added to the Kudu Python client.</p>
</li>
<li>
<p>Kudu now supports dedicated SPNEGO keytab
(see <a href="https://issues.apache.org/jira/browse/KUDU-3496">KUDU-3496</a>).</p>
</li>
<li>
<p>Kudu now supports creating under-replicated tables (when the number of requested replicas is
greater than the number of tablet servers) as long as consensus can be achieved
(see <a href="https://issues.apache.org/jira/browse/KUDU-3452">KUDU-3452</a>).</p>
</li>
<li>
<p>Tablet copying speed can now be limited
(see <a href="https://issues.apache.org/jira/browse/KUDU-3447">KUDU-3447</a>).</p>
</li>
<li>
<p>The maximum size of RPC messages is now configurable via the Kudu C++ client
(see <a href="https://issues.apache.org/jira/browse/KUDU-3595">KUDU-3595</a>).</p>
</li>
<li>
<p>Tablet-level metrics are now available in Prometheus format as well. Previously, only
server-level Kudu metrics were available in Prometheus format
(see <a href="https://issues.apache.org/jira/browse/KUDU-3563">KUDU-3563</a>).</p>
</li>
<li>
<p>Range aware cluster rebalancer can now be run for multiple tables and against the whole Kudu
cluster.</p>
</li>
<li>
<p>The example Kudu C++ client application now works with HMS-enabled Kudu clusters.</p>
</li>
<li>
<p>Addressed several CVE&#8217;s from thirdparty dependencies by upgrading them
(see <a href="https://issues.apache.org/jira/browse/KUDU-3626">KUDU-3626</a>,
<a href="https://issues.apache.org/jira/browse/KUDU-3629">KUDU-3629</a>)</p>
</li>
<li>
<p>Upgraded Gradle to version 7.6.4
(see <a href="https://issues.apache.org/jira/browse/KUDU-3551">KUDU-3551</a>).</p>
</li>
<li>
<p>Kudu now uses x509_get_signature_info() (OpenSSL 1.1.1+) to correctly detect hash algorithms
for RSASSA-PSS certificate signatures, fixing a limitation in the previous approach.
(see <a href="https://issues.apache.org/jira/browse/KUDU-3663">KUDU-3663</a>).</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.18.0_fixed_issues"><a class="link" href="#rn_1.18.0_fixed_issues">Fixed issues</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Fixed issue where UPDATE privilege granted by Ranger is not honored by Kudu.
(see <a href="https://issues.apache.org/jira/browse/KUDU-3661">KUDU-3661</a>).</p>
</li>
<li>
<p>Fixed scan issues where an unexpected predicate was introduced
(see <a href="https://issues.apache.org/jira/browse/KUDU-3518">KUDU-3518</a>).</p>
</li>
<li>
<p>Fixed a bug in the range-aware replica placement code where the master would crash
(see <a href="https://issues.apache.org/jira/browse/KUDU-3532">KUDU-3532</a>).</p>
</li>
<li>
<p>The ‘kudu table copy’ CLI tool now exits gracefully and prints information on errors instead
of crashing when encountering errors while writing data to the destination table.</p>
</li>
<li>
<p>Fixed handling of oversized messages exchanged between kudu-master process and Ranger client.
This fixes fine-grained authorization issues when working with a cluster having thousands of
tables (see <a href="https://issues.apache.org/jira/browse/KUDU-3450">KUDU-3450</a> and
<a href="https://issues.apache.org/jira/browse/KUDU-3489">KUDU-3489</a>).</p>
</li>
<li>
<p>Fixed at-rest encryption/decryption when using OpenSSL 3.</p>
</li>
<li>
<p>Fixed incompatibility introduced with <a href="https://issues.apache.org/jira/browse/KUDU-2671">KUDU-2671</a>
(see <a href="https://issues.apache.org/jira/browse/KUDU-3515">KUDU-3515</a>).</p>
</li>
<li>
<p>Fixed master and tablet server crash when the system clock is synchronized by PTPd
(see <a href="https://issues.apache.org/jira/browse/KUDU-3521">KUDU-3521</a>).</p>
</li>
<li>
<p>Fixed NPE that might be thrown during RPC connection negotiation by Kudu Java client. The
thrown exception would make the connection to the corresponding tablet server unusable, where
the only remedy for the issue was a restart of the Kudu Java client application
(see <a href="https://issues.apache.org/jira/browse/KUDU-3576">KUDU-3576</a>).</p>
</li>
<li>
<p>Do not expose string gauges as Prometheus metrics
(see <a href="https://issues.apache.org/jira/browse/KUDU-3549">KUDU-3549</a>).</p>
</li>
<li>
<p>Fixed integer overflow in available space metrics
(see <a href="https://issues.apache.org/jira/browse/KUDU-3562">KUDU-3562</a>).</p>
</li>
<li>
<p>Don’t spam servers’ logs with “Entity is not relevant to Prometheus”
(see <a href="https://issues.apache.org/jira/browse/KUDU-3561">KUDU-3561</a>).</p>
</li>
<li>
<p>Fixed summary metrics in Prometheus format
(see <a href="https://issues.apache.org/jira/browse/KUDU-3566">KUDU-3566</a>).</p>
</li>
<li>
<p>Fixed a race condition that might lead to unexpected behavior when processing AlterTable or a scan
request containing IN-list predicates with concurrently running major delta compaction
(see <a href="https://issues.apache.org/jira/browse/KUDU-3569">KUDU-3569</a>).</p>
</li>
<li>
<p>Fixed a heap-use-after-free bug in MajorDeltaCompactionOp. The bug might lead to unexpected
behavior when processing an AlterTable request along with concurrently running major delta
compaction (see <a href="https://issues.apache.org/jira/browse/KUDU-3570">KUDU-3570</a>).</p>
</li>
<li>
<p>Fixed altering tables with custom per-range hash schemas
(see <a href="https://issues.apache.org/jira/browse/KUDU-3577">KUDU-3577</a>).</p>
</li>
<li>
<p>Disable <a href="https://issues.apache.org/jira/browse/KUDU-3367">KUDU-3367</a> behavior by default. This fixes
major delta compaction failure that manifests itself in certain workloads with copious number of
DELETE operations (see <a href="https://issues.apache.org/jira/browse/KUDU-3619">KUDU-3619</a>).</p>
</li>
<li>
<p>Fixed Impala daemon crash caused due to improper handling of a no-longer-existing tablet
(see <a href="https://issues.apache.org/jira/browse/KUDU-3461">KUDU-3461</a>).</p>
</li>
<li>
<p>The Kudu CLI’s can now accommodate response payloads up to 2GByte in size with the increased
maximum RPC message size limit.</p>
</li>
<li>
<p>Fixed incorrect memory budgeting condition in compaction that could cause budgeting logic
to not kick in when required.</p>
</li>
<li>
<p>Fixed Ranger client issue to avoid spawning of Ranger subprocess if keytab file is not available
(see <a href="https://issues.apache.org/jira/browse/KUDU-3558">KUDU-3558</a>).</p>
</li>
<li>
<p>Fixed a bug where the Ranger client could silently crash leaving the Kudu masters running, but not
being able to serve requests (see <a href="https://issues.apache.org/jira/browse/KUDU-3504">KUDU-3504</a>).</p>
</li>
<li>
<p>Fixed a bug that the table could stay in ALTERING state forever if its replication factor changes
when it does not have any tablets.</p>
</li>
<li>
<p>Fixed a bug in Kudu Java client that might lead to a Scanner not found exception
(see <a href="https://issues.apache.org/jira/browse/KUDU-3526">KUDU-3526</a>).</p>
</li>
<li>
<p>Fixed a bug where the result of UPSERT might not be correct when the client schema and server schema
do not match (see <a href="https://issues.apache.org/jira/browse/KUDU-3495">KUDU-3495</a>).</p>
</li>
<li>
<p>Fixed a bug where the log cache of the tombstoned tablet might not be cleared
(see <a href="https://issues.apache.org/jira/browse/KUDU-3535">KUDU-3535</a>).</p>
</li>
<li>
<p>Fixed a bug where the maintenance manager might schedule fewer operations even if there are idle
threads and pending operations.
(see <a href="https://issues.apache.org/jira/browse/KUDU-3516">KUDU-3516</a>).</p>
</li>
<li>
<p>Fixed a bug when a new master with empty local directories tries to connect to an existing cluster
(see <a href="https://issues.apache.org/jira/browse/KUDU-3437">KUDU-3437</a>).</p>
</li>
<li>
<p>Fixed a bug in multi-master cluster with non-default Kerberos principal name.</p>
</li>
<li>
<p>Fixed a bug in multi-master cluster when MiniDumps enabled
(see <a href="https://issues.apache.org/jira/browse/KUDU-3491">KUDU-3491</a>).</p>
</li>
<li>
<p>Content-Type headers have been corrected for various HTTP/HTTPS endpoints, ensuring accurate
response formats, including support for JSON and binary data where applicable
(see <a href="https://issues.apache.org/jira/browse/KUDU-3543">KUDU-3543</a>).</p>
</li>
<li>
<p>SSE2 and AVX code now uses native NEON instructions on ARM64/AArch64
(see <a href="https://issues.apache.org/jira/browse/KUDU-3475">KUDU-3475</a>).</p>
</li>
<li>
<p>Fixed IN list predicate pruning for tables with range specific hash schema
(see <a href="https://issues.apache.org/jira/browse/KUDU-3564">KUDU-3564</a>).</p>
</li>
<li>
<p>Kudu Java client now properly handles concurrent table schema updates between consecutive write
operations within the same KuduSession
(see <a href="https://issues.apache.org/jira/browse/KUDU-3483">KUDU-3483</a>).</p>
</li>
<li>
<p>Fixed heap-use-after-free issue in OpDriver
(see <a href="https://issues.apache.org/jira/browse/KUDU-3620">KUDU-3620</a>).</p>
</li>
<li>
<p>Fixed handling of unexpected input for --predicates flag in <code>kudu table scan</code> and other CLI tools,
so the tools wouldn&#8217;t crash on incorrect user input, but report on problems with actionable error
messages. For details, see <a href="https://issues.apache.org/jira/browse/KUDU-3623">KUDU-3623</a>.</p>
</li>
<li>
<p>Fixed zlib-related errors when processing HMS notification events
(see <a href="https://issues.apache.org/jira/browse/KUDU-3648">KUDU-3648</a>.</p>
</li>
<li>
<p>Fixed the issue where DnsResolver threads were not shutdown causing retrying of RPCs that failed
due to server shutdown process
(see <a href="https://issues.apache.org/jira/browse/KUDU-3633">KUDU-3633</a>).</p>
</li>
<li>
<p>Fixed crash of Kudu CLI tool namely kudu table copy in cases of invalid inputs
(see <a href="https://issues.apache.org/jira/browse/KUDU-3623">KUDU-3623</a>).</p>
<div id="rn_1.18.0_wire_compatibility" class="paragraph">
<p>== Wire Protocol compatibility</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Kudu 1.18.0 is wire-compatible with previous versions of Kudu:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Kudu 1.18 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.17 and Kudu 1.18 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.18 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.18 and versions earlier than 1.3:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a Kudu 1.18 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.18 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.18.0_incompatible_changes"><a class="link" href="#rn_1.18.0_incompatible_changes">Incompatible Changes in Kudu 1.18.0</a></h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="rn_1.18.0_client_compatibility"><a class="link" href="#rn_1.18.0_client_compatibility">Client Library Compatibility</a></h3>
<div class="ulist">
<ul>
<li>
<p>The Kudu 1.18 Java client library is API- and ABI-compatible with Kudu 1.17. Applications
written against Kudu 1.17 will compile and run against the Kudu 1.18 client library and
vice-versa.
NOTE: As part of the Gradle upgrade to version 7.6.4, additional runtime dependencies have
been introduced in the published artifacts. These dependencies were optional in earlier versions
and, therefore, were not included in the corresponding POM files of those artifacts.</p>
</li>
<li>
<p>The Kudu 1.18 C&#43;&#43; client is API- and ABI-forward-compatible with Kudu 1.17.
Applications written and compiled against the Kudu 1.17 client library will run without
modification against the Kudu 1.18 client library. Applications written and compiled
against the Kudu 1.18 client library will run without modification against the Kudu 1.17
client library.</p>
</li>
<li>
<p>The Kudu 1.18 Python client is API-compatible with Kudu 1.17, as no breaking changes have
been introduced. However, support for Python versions 3.0 through 3.5 (inclusive) has been
dropped. Users on these versions should upgrade to a supported Python version. Applications
written against Kudu 1.17 will continue to work with the Kudu 1.18 client, and vice versa, as
long as a supported Python version is used.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rn_1.18.0_known_issues"><a class="link" href="#rn_1.18.0_known_issues">Known Issues and Limitations</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>The Kudu CLI tool sometimes crashes on exit with SIGSEGV in OPENSSL_cleanup
(see <a href="https://issues.apache.org/jira/browse/KUDU-3635">KUDU-3635</a>).</p>
</li>
</ul>
</div>
<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.18.0_contributors"><a class="link" href="#rn_1.18.0_contributors">Contributors</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Kudu 1.18.0 includes contributions from 26 people, including 3 first-time contributors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>halim.kim</p>
</li>
<li>
<p>qhsong</p>
</li>
<li>
<p>Sebastian Pop</p>
</li>
<li>
<p>Vladyslav Lyutenko</p>
</li>
<li>
<p>0xderek</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="resources_and_next_steps"><a class="link" href="#resources_and_next_steps">Resources</a></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><a href="http://kudu.apache.org">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>
<li>
<p><a href="prior_release_notes.html">Release notes for older releases</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="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>
<span class="active-toc">Kudu Release Notes</span>
<ul class="sectlevel1">
<li><a href="#rn_1.18.0_upgrade_notes">Upgrade Notes</a></li>
<li><a href="#rn_1.18.0_obsoletions">Obsoletions</a></li>
<li><a href="#rn_1.18.0_deprecations">Deprecations</a></li>
<li><a href="#rn_1.18.0_new_features">New features</a></li>
<li><a href="#rn_1.18.0_improvements">Optimizations and improvements</a></li>
<li><a href="#rn_1.18.0_fixed_issues">Fixed issues</a></li>
<li><a href="#rn_1.18.0_incompatible_changes">Incompatible Changes in Kudu 1.18.0</a>
<ul class="sectlevel2">
<li><a href="#rn_1.18.0_client_compatibility">Client Library Compatibility</a></li>
</ul>
</li>
<li><a href="#rn_1.18.0_known_issues">Known Issues and Limitations</a></li>
<li><a href="#rn_1.18.0_contributors">Contributors</a></li>
<li><a href="#resources_and_next_steps">Resources</a></li>
<li><a href="#_installation_options">Installation Options</a></li>
<li><a href="#_next_steps">Next Steps</a></li>
</ul>
</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>