http://git-wip-us.apache.org/repos/asf/kudu/blob/9062ee65/docs/release_notes.html ---------------------------------------------------------------------- diff --git a/docs/release_notes.html b/docs/release_notes.html index 31acaee..68e90a3 100644 --- a/docs/release_notes.html +++ b/docs/release_notes.html @@ -1,8 +1,8 @@ --- -title: Apache Kudu Release Notes +title: Apache Kudu 1.0 Release Notes layout: default active_nav: docs -last_updated: 'Last updated 2016-08-22 23:33:14 PDT' +last_updated: 'Last updated 2016-09-12 20:23:06 PDT' --- <!-- @@ -24,1028 +24,228 @@ limitations under the License. <div class="row"> <div class="col-md-9"> -<h1>Apache Kudu Release Notes</h1> +<h1>Apache Kudu 1.0 Release Notes</h1> <div class="sect1"> -<h2 id="_introduction"><a class="link" href="#_introduction">Introduction</a></h2> +<h2 id="rn_1.0.0"><a class="link" href="#rn_1.0.0">Overview</a></h2> <div class="sectionbody"> <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> -</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’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’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’s methods. -For example, an operation that tries to delete a table that doesn’t exist would return a -`Status</code> that returns true when queried on <code>isNotFound()</code>.</p> -</li> -<li> -<p>The Java client’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<const KuduPartialRow*></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’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’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’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’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’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’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’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> +<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="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> +<p>If you are new to Kudu, check out its list of <a href="index.html">features and benefits</a>.</p> </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> +<h2 id="rn_1.0.0_new_features"><a class="link" href="#rn_1.0.0_new_features">New features</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> +<p>Kudu 1.0.0 delivers a number of new features, bug fixes, and optimizations.</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/incubator-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"> +<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 0.9.0 delivers incremental features, improvements, and bug fixes over the previous versions.</p> +<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> -<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/incubator-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> +<p>Most of Kudu’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>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> +<p>The Kudu Flume Sink now supports processing events containing Avro-encoded +records, using the new <code>AvroKuduOperationsProducer</code>.</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> +<p>Administrative tools including <code>kudu cluster ksck</code> now support running +against multi-master Kudu clusters.</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> +<p>The output of the <code>ksck</code> tool is now colorized and much easier to read.</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> +<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="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> +<h2 id="_optimizations_and_improvements"><a class="link" href="#_optimizations_and_improvements">Optimizations and improvements</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/incubator-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> +<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><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’s tablet.</p> +<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><a href="https://issues.cloudera.org/browse/KUDU-1354">KUDU-1354</a> Due to a bug in Kudu’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> +<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><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> +<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="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> +<h2 id="_wire_protocol_compatibility"><a class="link" href="#_wire_protocol_compatibility">Wire protocol compatibility</a></h2> <div class="sectionbody"> <div class="paragraph"> -<p>Kudu 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> +<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> <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> +<h2 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></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/incubator-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> +<h3 id="_command_line_tools"><a class="link" href="#_command_line_tools">Command line tools</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<KuduRowResult></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> +<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 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> +<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 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> +<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> -</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> +<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>New server-level metrics allow you to monitor CPU usage and context switching.</p> +<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>Kudu now builds on RHEL 7, CentOS 7, and SLES 12. Extra instructions are included -for SLES 12.</p> +<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> -</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> +<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><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> +<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="sect2"> -<h3 id="rn_0.7.0_changes"><a class="link" href="#rn_0.7.0_changes">Other noteworthy changes</a></h3> +<h3 id="_configuration_flags"><a class="link" href="#_configuration_flags">Configuration flags</a></h3> <div class="ulist"> <ul> <li> -<p>The file block manager’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> +<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="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> +<h3 id="_client_apis_c_java_python"><a class="link" href="#_client_apis_c_java_python">Client APIs (C++/Java/Python)</a></h3> <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"> +<p>The <code>TIMESTAMP</code> column type has been renamed to <code>UNIXTIME_MICROS</code> in order to +reduce confusion between Kudu’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>The 0.6.0 release contains incremental improvements and bug fixes. The most notable -changes are:</p> +<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> -<div class="ulist"> -<ul> -<li> -<p>The Java client’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’s AbstractKuduScannerBuilder#maxNumBytes() setter is now called -batchSizeBytes as is the corresponding property in AsyncKuduScanner. This makes it -consistent with the C++ client.</p> +<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 "kudu-admin" tool can now list and delete tables via its new subcommands -"list_tables" and "delete_table <table_name>".</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> +<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 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> +<h3 id="_apache_flume_integration"><a class="link" href="#_apache_flume_integration">Apache Flume Integration</a></h3> <div class="ulist"> <ul> <li> -<p>The Python client is considered experimental.</p> +<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="_about_the_kudu_public_beta"><a class="link" href="#_about_the_kudu_public_beta">About the Kudu Public Beta</a></h2> +<h2 id="known_issues_and_limitations"><a class="link" href="#known_issues_and_limitations">Known Issues and Limitations</a></h2> <div class="sectionbody"> -<div class="paragraph"> -<p>This release of Kudu is a public beta. Do not run this beta release 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’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’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> +<h3 id="_schema_and_usage_limitations"><a class="link" href="#_schema_and_usage_limitations">Schema and Usage Limitations</a></h3> <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> +<p>Kudu is primarily designed for analytic use cases. 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> @@ -1074,41 +274,38 @@ space immediately.</p> </ul> </div> </div> -<div class="sect3"> -<h4 id="_ingest_limitations"><a class="link" href="#_ingest_limitations">Ingest Limitations</a></h4> +<div class="sect2"> +<h3 id="_partitioning_limitations"><a class="link" href="#_partitioning_limitations">Partitioning Limitations</a></h3> <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> +keys. Automatic splitting is not yet possible. Range partitions may be added +or dropped after a table has been created. See +<a href="schema_design.html">Schema Design</a> for more information.</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> +<p>Data in existing tables cannot currently be automatically repartitioned. As a workaround, +create a new table with the new partitioning and insert the contents of the old +table.</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="sect2"> +<h3 id="_replication_and_backup_limitations"><a class="link" href="#_replication_and_backup_limitations">Replication and Backup Limitations</a></h3> <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> +<p>Kudu does not currently include any built-in features for backup and restore. +Users are encouraged to use tools such as Spark or Impala to export or import +tables as necessary.</p> </li> </ul> </div> </div> -<div class="sect3"> -<h4 id="_impala_limitations"><a class="link" href="#_impala_limitations">Impala Limitations</a></h4> +<div class="sect2"> +<h3 id="_impala_limitations"><a class="link" href="#_impala_limitations">Impala Limitations</a></h3> <div class="ulist"> <ul> <li> @@ -1148,57 +345,41 @@ data from the table and evaluate the predicate within Impala.</p> </ul> </div> </div> -<div class="sect3"> -<h4 id="_security_limitations"><a class="link" href="#_security_limitations">Security Limitations</a></h4> +<div class="sect2"> +<h3 id="_security_limitations"><a class="link" href="#_security_limitations">Security Limitations</a></h3> <div class="ulist"> <ul> <li> -<p>Authentication and authorization are not included in the public beta.</p> +<p>Authentication and authorization features are not implemented.</p> </li> <li> -<p>Data encryption is not included in the public beta.</p> +<p>Data encryption is not built in. Kudu has been reported to run correctly +on systems using local block device encryption (e.g. <code>dmcrypt</code>).</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="sect2"> +<h3 id="_client_and_api_limitations"><a class="link" href="#_client_and_api_limitations">Client and API Limitations</a></h3> <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> +operations will become available in future releases.</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="sect2"> +<h3 id="_other_known_issues"><a class="link" href="#_other_known_issues">Other Known Issues</a></h3> <div class="paragraph"> -<p>The following are known bugs and issues with the current beta release. They will -be addressed in later beta releases.</p> +<p>The following are known bugs and issues with the current release of Kudu. They will +be addressed in later releases. Note that this list is not exhaustive, and is meant +to communicate only the most important known issues.</p> </div> <div class="ulist"> <ul> <li> -<p>Building Kudu from source using <code>gcc</code> 4.6 or 4.7 causes runtime and test failures. Be sure -you are using a different version of <code>gcc</code> if you build Kudu from source.</p> -</li> -<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> @@ -1208,8 +389,18 @@ to start up. It is recommended to limit the number of tablets per server to 100 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> +<li> +<p>Due to a known bug in Linux kernels prior to 3.8, running Kudu on <code>ext4</code> mount points +may cause a subsequent <code>fsck</code> to fail with errors such as <code>Logical start <N> does +not match logical start <M> at next level</code>. These errors are repairable using <code>fsck -y</code>, +but may impact server restart time.</p> +<div class="paragraph"> +<p>This affects RHEL/CentOS 6.8 and below. A fix is planned for RHEL/CentOS 6.9. + RHEL 7.0 and higher are not affected. Ubuntu 14.04 and later are not affected. + SLES 12 and later are not affected.</p> </div> +</li> +</ul> </div> </div> </div> @@ -1220,14 +411,17 @@ you can monitor the number of tablets per server in the web UI.</p> <div class="ulist"> <ul> <li> -<p><a href="http://getkudu.io">Kudu Website</a></p> +<p><a href="http://kudu.apache.org">Kudu Website</a></p> </li> <li> -<p><a href="http://github.com/apache/incubator-kudu">Kudu GitHub Repository</a></p> +<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.adoc">Release notes for older releases</a></p> +</li> </ul> </div> </div> @@ -1235,22 +429,6 @@ you can monitor the number of tablets per server in the web UI.</p> <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> @@ -1287,99 +465,29 @@ you can monitor the number of tablets per server in the web UI.</p> <li> <span class="active-toc">Kudu Release Notes</span> <ul class="sectlevel1"> -<li><a href="#_introduction">Introduction</a></li> -<li><a href="#rn_0.10.0">Release notes specific to 0.10.0</a> +<li><a href="#rn_1.0.0">Overview</a></li> +<li><a href="#rn_1.0.0_new_features">New features</a></li> +<li><a href="#_optimizations_and_improvements">Optimizations and improvements</a></li> +<li><a href="#_wire_protocol_compatibility">Wire protocol compatibility</a></li> +<li><a href="#rn_1.0.0_incompatible_changes">Incompatible changes in Kudu 1.0.0</a> <ul class="sectlevel2"> -<li><a href="#rn_0.10.0_incompatible_changes">Incompatible changes and deprecated APIs in 0.10.0</a></li> -<li><a href="#rn_0.10.0_new_features">New features</a></li> -<li><a href="#rn_0.10.0_improvements">Improvements and optimizations</a></li> -<li><a href="#rn_0.10.0_fixed_issues">Fixed Issues</a></li> -<li><a href="#rn_0.10.0_changes">Other noteworthy changes</a></li> -<li><a href="#rn_0.10.0_upgrade">Upgrading from 0.9.x to 0.10.0</a></li> -<li><a href="#rn_0.10.0_downgrade">Downgrading from 0.10.0 to 0.9.x</a></li> +<li><a href="#_command_line_tools">Command line tools</a></li> +<li><a href="#_configuration_flags">Configuration flags</a></li> +<li><a href="#_client_apis_c_java_python">Client APIs (C++/Java/Python)</a></li> +<li><a href="#_apache_flume_integration">Apache Flume Integration</a></li> </ul> </li> -<li><a href="#rn_0.9.1">Release notes specific to 0.9.1</a> +<li><a href="#known_issues_and_limitations">Known Issues and Limitations</a> <ul class="sectlevel2"> -<li><a href="#rn_0.9.1_upgrade">Upgrading from 0.9.0 to 0.9.1</a></li> -<li><a href="#rn_0.9.1_fixed_issues">Fixed Issues</a></li> -</ul> -</li> -<li><a href="#rn_0.9.0">Release notes specific to 0.9.0</a> -<ul class="sectlevel2"> -<li><a href="#rn_0.9.0_incompatible_changes">Incompatible changes</a></li> -<li><a href="#rn_0.9.0_new_features">New features</a></li> -<li><a href="#rn_0.9.0_improvements">Improvements</a></li> -<li><a href="#rn_0.9.0_fixed_issues">Fixed Issues</a></li> -<li><a href="#rn_0.9.0_changes">Other noteworthy changes</a></li> -<li><a href="#rn_0.9.0_upgrade">Upgrading from 0.8.0 to 0.9.x</a></li> -<li><a href="#rn_0.9.0_client_compatibility">Client compatibility</a></li> -</ul> -</li> -<li><a href="#rn_0.8.0">Release notes specific to 0.8.0</a> -<ul class="sectlevel2"> -<li><a href="#rn_0.8.0_incompatible_changes">Incompatible changes</a></li> -<li><a href="#rn_0.8.0_new_features">New features</a></li> -<li><a href="#rn_0.8.0_improvements">Improvements</a></li> -<li><a href="#rn_0.8.0_fixed_issues">Fixed Issues</a></li> -<li><a href="#rn_0.8.0_changes">Other noteworthy changes</a></li> -</ul> -</li> -<li><a href="#rn_0.7.1">Release notes specific to 0.7.1</a> -<ul class="sectlevel2"> -<li><a href="#rn_0.7.1_fixed_issues">Fixed Issues</a></li> -</ul> -</li> -<li><a href="#rn_0.7.0">Release notes specific to 0.7.0</a> -<ul class="sectlevel2"> -<li><a href="#rn_0.7.0_incompatible_changes">Incompatible changes</a></li> -<li><a href="#rn_0.7.0_new_features">New features</a></li> -<li><a href="#rn_0.7.0_improvements">Improvements</a></li> -<li><a href="#rn_0.7.0_fixed_issues">Fixed Issues</a></li> -<li><a href="#rn_0.7.0_changes">Other noteworthy changes</a></li> -<li><a href="#_limitations">Limitations</a> -<ul class="sectlevel3"> -<li><a href="#_operating_system_limitations">Operating System Limitations</a></li> -</ul> -</li> -</ul> -</li> -<li><a href="#rn_0.6.0">Release notes specific to 0.6.0</a> -<ul class="sectlevel2"> -<li><a href="#_limitations_2">Limitations</a> -<ul class="sectlevel3"> -<li><a href="#_operating_system_limitations_2">Operating System Limitations</a></li> -<li><a href="#_api_limitations">API Limitations</a></li> -</ul> -</li> -</ul> -</li> -<li><a href="#rn_0.5.0">Release Notes Specific to 0.5.0</a> -<ul class="sectlevel2"> -<li><a href="#_limitations_3">Limitations</a> -<ul class="sectlevel3"> -<li><a href="#_operating_system_limitations_3">Operating System Limitations</a></li> -<li><a href="#_api_limitations_2">API Limitations</a></li> -</ul> -</li> -</ul> -</li> -<li><a href="#_about_the_kudu_public_beta">About the Kudu Public Beta</a> -<ul class="sectlevel2"> -<li><a href="#beta_limitations">Limitations of the Kudu Public Beta</a> -<ul class="sectlevel3"> -<li><a href="#_schema_limitations">Schema Limitations</a></li> -<li><a href="#_ingest_limitations">Ingest Limitations</a></li> +<li><a href="#_schema_and_usage_limitations">Schema and Usage Limitations</a></li> +<li><a href="#_partitioning_limitations">Partitioning Limitations</a></li> <li><a href="#_replication_and_backup_limitations">Replication and Backup Limitations</a></li> <li><a href="#_impala_limitations">Impala Limitations</a></li> <li><a href="#_security_limitations">Security Limitations</a></li> <li><a href="#_client_and_api_limitations">Client and API Limitations</a></li> -<li><a href="#_application_integration_limitations">Application Integration Limitations</a></li> <li><a href="#_other_known_issues">Other Known Issues</a></li> </ul> </li> -</ul> -</li> <li><a href="#_resources">Resources</a></li> <li><a href="#_installation_options">Installation Options</a></li> <li><a href="#_next_steps">Next Steps</a></li>
http://git-wip-us.apache.org/repos/asf/kudu/blob/9062ee65/docs/schema_design.html ---------------------------------------------------------------------- diff --git a/docs/schema_design.html b/docs/schema_design.html index 3e698dc..683403d 100644 --- a/docs/schema_design.html +++ b/docs/schema_design.html @@ -2,7 +2,7 @@ title: Apache Kudu Schema Design layout: default active_nav: docs -last_updated: 'Last updated 2016-08-19 17:48:32 PDT' +last_updated: 'Last updated 2016-09-10 16:35:27 PDT' --- <!-- @@ -217,7 +217,7 @@ Consider the following table schema.</p> <pre class="highlight"><code class="language-sql" data-lang="sql">CREATE TABLE metrics ( host STRING NOT NULL, metric STRING, - time TIMESTAMP NOT NULL, + time UNIXTIME_MICROS NOT NULL, measurement DOUBLE, PRIMARY KEY (time, metric, host), )</code></pre> @@ -307,7 +307,7 @@ Supported column types include:</p> <p>64-bit signed integer</p> </li> <li> -<p>timestamp</p> +<p>unixtime_micros (64-bit microseconds since the Unix epoch)</p> </li> <li> <p>single-precision (32-bit) IEEE-754 floating-point number</p> @@ -351,16 +351,20 @@ of the column. Columns use plain encoding by default.</p> </thead> <tbody> <tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">integer, timestamp</p></td> +<td class="tableblock halign-left valign-top"><p class="tableblock">int8, int16, int32</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">plain, bitshuffle, run length</p></td> </tr> <tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">float</p></td> +<td class="tableblock halign-left valign-top"><p class="tableblock">int64, unixtime_micros</p></td> +<td class="tableblock halign-left valign-top"><p class="tableblock">plain, bitshuffle</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top"><p class="tableblock">float, double</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">plain, bitshuffle</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">plain, dictionary, run length</p></td> +<td class="tableblock halign-left valign-top"><p class="tableblock">plain, run length</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">string, binary</p></td> http://git-wip-us.apache.org/repos/asf/kudu/blob/9062ee65/docs/style_guide.html ---------------------------------------------------------------------- diff --git a/docs/style_guide.html b/docs/style_guide.html index 7c57d74..1a58082 100644 --- a/docs/style_guide.html +++ b/docs/style_guide.html @@ -2,7 +2,7 @@ title: Apache Kudu Documentation Style Guide layout: default active_nav: docs -last_updated: 'Last updated 2016-08-19 17:48:32 PDT' +last_updated: 'Last updated 2016-08-30 11:05:39 PDT' --- <!-- http://git-wip-us.apache.org/repos/asf/kudu/blob/9062ee65/docs/transaction_semantics.html ---------------------------------------------------------------------- diff --git a/docs/transaction_semantics.html b/docs/transaction_semantics.html index 3bfaff6..8ad07fe 100644 --- a/docs/transaction_semantics.html +++ b/docs/transaction_semantics.html @@ -2,7 +2,7 @@ title: Transaction Semantics in Apache Kudu layout: default active_nav: docs -last_updated: 'Last updated 2016-08-19 17:48:32 PDT' +last_updated: 'Last updated 2016-08-30 11:05:39 PDT' --- <!-- http://git-wip-us.apache.org/repos/asf/kudu/blob/9062ee65/docs/troubleshooting.html ---------------------------------------------------------------------- diff --git a/docs/troubleshooting.html b/docs/troubleshooting.html index 9ebcc65..1196574 100644 --- a/docs/troubleshooting.html +++ b/docs/troubleshooting.html @@ -2,7 +2,7 @@ title: Apache Kudu Troubleshooting layout: default active_nav: docs -last_updated: 'Last updated 2016-08-19 17:48:32 PDT' +last_updated: 'Last updated 2016-08-30 11:05:39 PDT' --- <!-- http://git-wip-us.apache.org/repos/asf/kudu/blob/9062ee65/releases/1.0.0/apidocs/allclasses-frame.html ---------------------------------------------------------------------- diff --git a/releases/1.0.0/apidocs/allclasses-frame.html b/releases/1.0.0/apidocs/allclasses-frame.html new file mode 100644 index 0000000..2e7868c --- /dev/null +++ b/releases/1.0.0/apidocs/allclasses-frame.html @@ -0,0 +1,82 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>All Classes (Kudu 1.0.0 API)</title> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<h1 class="bar">All Classes</h1> +<div class="indexContainer"> +<ul> +<li><a href="org/apache/kudu/client/AbstractKuduScannerBuilder.html" title="class in org.apache.kudu.client" target="classFrame">AbstractKuduScannerBuilder</a></li> +<li><a href="org/apache/kudu/client/AlterTableOptions.html" title="class in org.apache.kudu.client" target="classFrame">AlterTableOptions</a></li> +<li><a href="org/apache/kudu/client/AlterTableResponse.html" title="class in org.apache.kudu.client" target="classFrame">AlterTableResponse</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client" target="classFrame">AsyncKuduClient</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html" title="class in org.apache.kudu.client" target="classFrame">AsyncKuduClient.AsyncKuduClientBuilder</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduScanner.html" title="class in org.apache.kudu.client" target="classFrame">AsyncKuduScanner</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduScanner.AsyncKuduScannerBuilder.html" title="class in org.apache.kudu.client" target="classFrame">AsyncKuduScanner.AsyncKuduScannerBuilder</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduScanner.ReadMode.html" title="enum in org.apache.kudu.client" target="classFrame">AsyncKuduScanner.ReadMode</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client" target="classFrame">AsyncKuduSession</a></li> +<li><a href="org/apache/kudu/client/ColumnRangePredicate.html" title="class in org.apache.kudu.client" target="classFrame">ColumnRangePredicate</a></li> +<li><a href="org/apache/kudu/ColumnSchema.html" title="class in org.apache.kudu" target="classFrame">ColumnSchema</a></li> +<li><a href="org/apache/kudu/mapreduce/CommandLineParser.html" title="class in org.apache.kudu.mapreduce" target="classFrame">CommandLineParser</a></li> +<li><a href="org/apache/kudu/client/CreateTableOptions.html" title="class in org.apache.kudu.client" target="classFrame">CreateTableOptions</a></li> +<li><a href="org/apache/kudu/mapreduce/tools/CsvParser.html" title="class in org.apache.kudu.mapreduce.tools" target="classFrame">CsvParser</a></li> +<li><a href="org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client" target="classFrame">Delete</a></li> +<li><a href="org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client" target="classFrame">DeleteTableResponse</a></li> +<li><a href="org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client" target="classFrame">ExternalConsistencyMode</a></li> +<li><a href="org/apache/kudu/client/HasFailedRpcException.html" title="interface in org.apache.kudu.client" target="classFrame"><span class="interfaceName">HasFailedRpcException</span></a></li> +<li><a href="org/apache/kudu/mapreduce/tools/ImportCsv.html" title="class in org.apache.kudu.mapreduce.tools" target="classFrame">ImportCsv</a></li> +<li><a href="org/apache/kudu/client/Insert.html" title="class in org.apache.kudu.client" target="classFrame">Insert</a></li> +<li><a href="org/apache/kudu/annotations/InterfaceAudience.html" title="class in org.apache.kudu.annotations" target="classFrame">InterfaceAudience</a></li> +<li><a href="org/apache/kudu/annotations/InterfaceStability.html" title="class in org.apache.kudu.annotations" target="classFrame">InterfaceStability</a></li> +<li><a href="org/apache/kudu/client/IsAlterTableDoneResponse.html" title="class in org.apache.kudu.client" target="classFrame">IsAlterTableDoneResponse</a></li> +<li><a href="org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client" target="classFrame">KuduClient</a></li> +<li><a href="org/apache/kudu/client/KuduClient.KuduClientBuilder.html" title="class in org.apache.kudu.client" target="classFrame">KuduClient.KuduClientBuilder</a></li> +<li><a href="org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client" target="classFrame">KuduException</a></li> +<li><a href="org/apache/kudu/flume/sink/KuduOperationsProducer.html" title="interface in org.apache.kudu.flume.sink" target="classFrame"><span class="interfaceName">KuduOperationsProducer</span></a></li> +<li><a href="org/apache/kudu/client/KuduPredicate.html" title="class in org.apache.kudu.client" target="classFrame">KuduPredicate</a></li> +<li><a href="org/apache/kudu/client/KuduPredicate.ComparisonOp.html" title="enum in org.apache.kudu.client" target="classFrame">KuduPredicate.ComparisonOp</a></li> +<li><a href="org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client" target="classFrame">KuduScanner</a></li> +<li><a href="org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client" target="classFrame">KuduScanner.KuduScannerBuilder</a></li> +<li><a href="org/apache/kudu/client/KuduScanToken.html" title="class in org.apache.kudu.client" target="classFrame">KuduScanToken</a></li> +<li><a href="org/apache/kudu/client/KuduScanToken.KuduScanTokenBuilder.html" title="class in org.apache.kudu.client" target="classFrame">KuduScanToken.KuduScanTokenBuilder</a></li> +<li><a href="org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client" target="classFrame">KuduSession</a></li> +<li><a href="org/apache/kudu/flume/sink/KuduSink.html" title="class in org.apache.kudu.flume.sink" target="classFrame">KuduSink</a></li> +<li><a href="org/apache/kudu/flume/sink/KuduSinkConfigurationConstants.html" title="class in org.apache.kudu.flume.sink" target="classFrame">KuduSinkConfigurationConstants</a></li> +<li><a href="org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client" target="classFrame">KuduTable</a></li> +<li><a href="org/apache/kudu/mapreduce/KuduTableInputFormat.html" title="class in org.apache.kudu.mapreduce" target="classFrame">KuduTableInputFormat</a></li> +<li><a href="org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html" title="class in org.apache.kudu.mapreduce" target="classFrame">KuduTableMapReduceUtil</a></li> +<li><a href="org/apache/kudu/mapreduce/KuduTableOutputCommitter.html" title="class in org.apache.kudu.mapreduce" target="classFrame">KuduTableOutputCommitter</a></li> +<li><a href="org/apache/kudu/mapreduce/KuduTableOutputFormat.html" title="class in org.apache.kudu.mapreduce" target="classFrame">KuduTableOutputFormat</a></li> +<li><a href="org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client" target="classFrame">ListTablesResponse</a></li> +<li><a href="org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client" target="classFrame">ListTabletServersResponse</a></li> +<li><a href="org/apache/kudu/client/LocatedTablet.html" title="class in org.apache.kudu.client" target="classFrame">LocatedTablet</a></li> +<li><a href="org/apache/kudu/client/LocatedTablet.Replica.html" title="class in org.apache.kudu.client" target="classFrame">LocatedTablet.Replica</a></li> +<li><a href="org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client" target="classFrame">Operation</a></li> +<li><a href="org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client" target="classFrame">OperationResponse</a></li> +<li><a href="org/apache/kudu/client/PartialRow.html" title="class in org.apache.kudu.client" target="classFrame">PartialRow</a></li> +<li><a href="org/apache/kudu/client/PleaseThrottleException.html" title="class in org.apache.kudu.client" target="classFrame">PleaseThrottleException</a></li> +<li><a href="org/apache/kudu/client/RangePartitionBound.html" title="enum in org.apache.kudu.client" target="classFrame">RangePartitionBound</a></li> +<li><a href="org/apache/kudu/client/RowError.html" title="class in org.apache.kudu.client" target="classFrame">RowError</a></li> +<li><a href="org/apache/kudu/client/RowErrorsAndOverflowStatus.html" title="class in org.apache.kudu.client" target="classFrame">RowErrorsAndOverflowStatus</a></li> +<li><a href="org/apache/kudu/client/RowResult.html" title="class in org.apache.kudu.client" target="classFrame">RowResult</a></li> +<li><a href="org/apache/kudu/client/RowResultIterator.html" title="class in org.apache.kudu.client" target="classFrame">RowResultIterator</a></li> +<li><a href="org/apache/kudu/Schema.html" title="class in org.apache.kudu" target="classFrame">Schema</a></li> +<li><a href="org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client" target="classFrame"><span class="interfaceName">SessionConfiguration</span></a></li> +<li><a href="org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client" target="classFrame">SessionConfiguration.FlushMode</a></li> +<li><a href="org/apache/kudu/client/Statistics.html" title="class in org.apache.kudu.client" target="classFrame">Statistics</a></li> +<li><a href="org/apache/kudu/client/Statistics.Statistic.html" title="enum in org.apache.kudu.client" target="classFrame">Statistics.Statistic</a></li> +<li><a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client" target="classFrame">Status</a></li> +<li><a href="org/apache/kudu/mapreduce/TableReducer.html" title="class in org.apache.kudu.mapreduce" target="classFrame">TableReducer</a></li> +<li><a href="org/apache/kudu/Type.html" title="enum in org.apache.kudu" target="classFrame">Type</a></li> +<li><a href="org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client" target="classFrame">Update</a></li> +<li><a href="org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client" target="classFrame">Upsert</a></li> +</ul> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/kudu/blob/9062ee65/releases/1.0.0/apidocs/allclasses-noframe.html ---------------------------------------------------------------------- diff --git a/releases/1.0.0/apidocs/allclasses-noframe.html b/releases/1.0.0/apidocs/allclasses-noframe.html new file mode 100644 index 0000000..561b4ce --- /dev/null +++ b/releases/1.0.0/apidocs/allclasses-noframe.html @@ -0,0 +1,82 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>All Classes (Kudu 1.0.0 API)</title> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<h1 class="bar">All Classes</h1> +<div class="indexContainer"> +<ul> +<li><a href="org/apache/kudu/client/AbstractKuduScannerBuilder.html" title="class in org.apache.kudu.client">AbstractKuduScannerBuilder</a></li> +<li><a href="org/apache/kudu/client/AlterTableOptions.html" title="class in org.apache.kudu.client">AlterTableOptions</a></li> +<li><a href="org/apache/kudu/client/AlterTableResponse.html" title="class in org.apache.kudu.client">AlterTableResponse</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html" title="class in org.apache.kudu.client">AsyncKuduClient.AsyncKuduClientBuilder</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduScanner.html" title="class in org.apache.kudu.client">AsyncKuduScanner</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduScanner.AsyncKuduScannerBuilder.html" title="class in org.apache.kudu.client">AsyncKuduScanner.AsyncKuduScannerBuilder</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduScanner.ReadMode.html" title="enum in org.apache.kudu.client">AsyncKuduScanner.ReadMode</a></li> +<li><a href="org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client">AsyncKuduSession</a></li> +<li><a href="org/apache/kudu/client/ColumnRangePredicate.html" title="class in org.apache.kudu.client">ColumnRangePredicate</a></li> +<li><a href="org/apache/kudu/ColumnSchema.html" title="class in org.apache.kudu">ColumnSchema</a></li> +<li><a href="org/apache/kudu/mapreduce/CommandLineParser.html" title="class in org.apache.kudu.mapreduce">CommandLineParser</a></li> +<li><a href="org/apache/kudu/client/CreateTableOptions.html" title="class in org.apache.kudu.client">CreateTableOptions</a></li> +<li><a href="org/apache/kudu/mapreduce/tools/CsvParser.html" title="class in org.apache.kudu.mapreduce.tools">CsvParser</a></li> +<li><a href="org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client">Delete</a></li> +<li><a href="org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client">DeleteTableResponse</a></li> +<li><a href="org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client">ExternalConsistencyMode</a></li> +<li><a href="org/apache/kudu/client/HasFailedRpcException.html" title="interface in org.apache.kudu.client"><span class="interfaceName">HasFailedRpcException</span></a></li> +<li><a href="org/apache/kudu/mapreduce/tools/ImportCsv.html" title="class in org.apache.kudu.mapreduce.tools">ImportCsv</a></li> +<li><a href="org/apache/kudu/client/Insert.html" title="class in org.apache.kudu.client">Insert</a></li> +<li><a href="org/apache/kudu/annotations/InterfaceAudience.html" title="class in org.apache.kudu.annotations">InterfaceAudience</a></li> +<li><a href="org/apache/kudu/annotations/InterfaceStability.html" title="class in org.apache.kudu.annotations">InterfaceStability</a></li> +<li><a href="org/apache/kudu/client/IsAlterTableDoneResponse.html" title="class in org.apache.kudu.client">IsAlterTableDoneResponse</a></li> +<li><a href="org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a></li> +<li><a href="org/apache/kudu/client/KuduClient.KuduClientBuilder.html" title="class in org.apache.kudu.client">KuduClient.KuduClientBuilder</a></li> +<li><a href="org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></li> +<li><a href="org/apache/kudu/flume/sink/KuduOperationsProducer.html" title="interface in org.apache.kudu.flume.sink"><span class="interfaceName">KuduOperationsProducer</span></a></li> +<li><a href="org/apache/kudu/client/KuduPredicate.html" title="class in org.apache.kudu.client">KuduPredicate</a></li> +<li><a href="org/apache/kudu/client/KuduPredicate.ComparisonOp.html" title="enum in org.apache.kudu.client">KuduPredicate.ComparisonOp</a></li> +<li><a href="org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client">KuduScanner</a></li> +<li><a href="org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client">KuduScanner.KuduScannerBuilder</a></li> +<li><a href="org/apache/kudu/client/KuduScanToken.html" title="class in org.apache.kudu.client">KuduScanToken</a></li> +<li><a href="org/apache/kudu/client/KuduScanToken.KuduScanTokenBuilder.html" title="class in org.apache.kudu.client">KuduScanToken.KuduScanTokenBuilder</a></li> +<li><a href="org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client">KuduSession</a></li> +<li><a href="org/apache/kudu/flume/sink/KuduSink.html" title="class in org.apache.kudu.flume.sink">KuduSink</a></li> +<li><a href="org/apache/kudu/flume/sink/KuduSinkConfigurationConstants.html" title="class in org.apache.kudu.flume.sink">KuduSinkConfigurationConstants</a></li> +<li><a href="org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a></li> +<li><a href="org/apache/kudu/mapreduce/KuduTableInputFormat.html" title="class in org.apache.kudu.mapreduce">KuduTableInputFormat</a></li> +<li><a href="org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html" title="class in org.apache.kudu.mapreduce">KuduTableMapReduceUtil</a></li> +<li><a href="org/apache/kudu/mapreduce/KuduTableOutputCommitter.html" title="class in org.apache.kudu.mapreduce">KuduTableOutputCommitter</a></li> +<li><a href="org/apache/kudu/mapreduce/KuduTableOutputFormat.html" title="class in org.apache.kudu.mapreduce">KuduTableOutputFormat</a></li> +<li><a href="org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a></li> +<li><a href="org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client">ListTabletServersResponse</a></li> +<li><a href="org/apache/kudu/client/LocatedTablet.html" title="class in org.apache.kudu.client">LocatedTablet</a></li> +<li><a href="org/apache/kudu/client/LocatedTablet.Replica.html" title="class in org.apache.kudu.client">LocatedTablet.Replica</a></li> +<li><a href="org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a></li> +<li><a href="org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a></li> +<li><a href="org/apache/kudu/client/PartialRow.html" title="class in org.apache.kudu.client">PartialRow</a></li> +<li><a href="org/apache/kudu/client/PleaseThrottleException.html" title="class in org.apache.kudu.client">PleaseThrottleException</a></li> +<li><a href="org/apache/kudu/client/RangePartitionBound.html" title="enum in org.apache.kudu.client">RangePartitionBound</a></li> +<li><a href="org/apache/kudu/client/RowError.html" title="class in org.apache.kudu.client">RowError</a></li> +<li><a href="org/apache/kudu/client/RowErrorsAndOverflowStatus.html" title="class in org.apache.kudu.client">RowErrorsAndOverflowStatus</a></li> +<li><a href="org/apache/kudu/client/RowResult.html" title="class in org.apache.kudu.client">RowResult</a></li> +<li><a href="org/apache/kudu/client/RowResultIterator.html" title="class in org.apache.kudu.client">RowResultIterator</a></li> +<li><a href="org/apache/kudu/Schema.html" title="class in org.apache.kudu">Schema</a></li> +<li><a href="org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client"><span class="interfaceName">SessionConfiguration</span></a></li> +<li><a href="org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client">SessionConfiguration.FlushMode</a></li> +<li><a href="org/apache/kudu/client/Statistics.html" title="class in org.apache.kudu.client">Statistics</a></li> +<li><a href="org/apache/kudu/client/Statistics.Statistic.html" title="enum in org.apache.kudu.client">Statistics.Statistic</a></li> +<li><a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client">Status</a></li> +<li><a href="org/apache/kudu/mapreduce/TableReducer.html" title="class in org.apache.kudu.mapreduce">TableReducer</a></li> +<li><a href="org/apache/kudu/Type.html" title="enum in org.apache.kudu">Type</a></li> +<li><a href="org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client">Update</a></li> +<li><a href="org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client">Upsert</a></li> +</ul> +</div> +</body> +</html>