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