You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by jd...@apache.org on 2016/02/12 01:16:53 UTC

[1/5] incubator-kudu git commit: Improvements to download-thirdparty.sh for low bandwidth connections

Repository: incubator-kudu
Updated Branches:
  refs/heads/master e77f8d1e5 -> 715722bc9


Improvements to download-thirdparty.sh for low bandwidth connections

When internet bandwidth is harder to come by than disk space, it's nice
to have an option to keep thirdparty archives around instead of
re-downloading them all the time. By setting the
NO_REMOVE_THIRDPARTY_ARCHIVES environment variable, the downloaded
source tarballs for thirdparty will not be removed and will be reused
the next time download-thirdparty.sh attempts to fetch the artifact. If
the artifact is corrupted, it is removed and the script attempts to
re-download it. This retry only happens once.

Change-Id: I1c7ca6994d2c0251676ebe1397cf4fccfb1d59f9
Reviewed-on: http://gerrit.cloudera.org:8080/2122
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/ce7dfd9a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/ce7dfd9a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/ce7dfd9a

Branch: refs/heads/master
Commit: ce7dfd9a21e695f09c13e0babc56aa5ecede9803
Parents: e77f8d1
Author: Mike Percy <mp...@apache.org>
Authored: Thu Feb 11 11:28:13 2016 +0200
Committer: Jean-Daniel Cryans <jd...@gerrit.cloudera.org>
Committed: Thu Feb 11 23:26:57 2016 +0000

----------------------------------------------------------------------
 thirdparty/download-thirdparty.sh | 54 ++++++++++++++++++++++++++--------
 1 file changed, 41 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/ce7dfd9a/thirdparty/download-thirdparty.sh
----------------------------------------------------------------------
diff --git a/thirdparty/download-thirdparty.sh b/thirdparty/download-thirdparty.sh
index 542f6a9..9b1b8cf 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -48,21 +48,49 @@ fetch_and_expand() {
     exit 1
   fi
 
-  echo "Fetching $FILENAME"
-  curl -O "${CLOUDFRONT_URL_PREFIX}/${FILENAME}"
-
-  echo "Unpacking $FILENAME"
-  if echo "$FILENAME" | egrep -q '\.zip$'; then
-    unzip -q $FILENAME
-  elif echo "$FILENAME" | egrep -q '(\.tar\.gz|\.tgz)$'; then
-    tar xf $FILENAME
-  else
-    echo "Error: unknown file format: $FILENAME"
-    exit 1
+  FULL_URL="${CLOUDFRONT_URL_PREFIX}/${FILENAME}"
+  SUCCESS=0
+  # Loop in case we encounter a corrupted archive and we need to re-download it.
+  for attempt in 1 2; do
+    if [ -r "$FILENAME" ]; then
+      echo "Archive $FILENAME already exists. Not re-downloading archive."
+    else
+      echo "Fetching $FILENAME from $FULL_URL"
+      curl -O "$FULL_URL"
+    fi
+
+    echo "Unpacking $FILENAME"
+    if echo "$FILENAME" | egrep -q '\.zip$'; then
+      if ! unzip -q "$FILENAME"; then
+        echo "Error unzipping $FILENAME, removing file"
+        rm "$FILENAME"
+        continue
+      fi
+    elif echo "$FILENAME" | egrep -q '(\.tar\.gz|\.tgz)$'; then
+      if ! tar xf "$FILENAME"; then
+        echo "Error untarring $FILENAME, removing file"
+        rm "$FILENAME"
+        continue
+      fi
+    else
+      echo "Error: unknown file format: $FILENAME"
+      exit 1
+    fi
+
+    SUCCESS=1
+    break
+  done
+
+  if [ $SUCCESS -ne 1 ]; then
+    echo "Error: failed to fetch and unpack $FILENAME"
   fi
 
-  echo "Removing $FILENAME"
-  rm $FILENAME
+  # Allow for not removing previously-downloaded artifacts.
+  # Useful on a low-bandwidth connection.
+  if [ -z "$NO_REMOVE_THIRDPARTY_ARCHIVES" ]; then
+    echo "Removing $FILENAME"
+    rm $FILENAME
+  fi
   echo
 }
 


[2/5] incubator-kudu git commit: Allow for specifying libs to build to build-thirdparty.sh

Posted by jd...@apache.org.
Allow for specifying libs to build to build-thirdparty.sh

$* must not be in quotes if we want to allow iteration with a for loop
(which was the original intention). Tested locally.

Change-Id: I3bd7f329c001d3f9de992e4b0d74e16996f75580
Reviewed-on: http://gerrit.cloudera.org:8080/2121
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/983de45f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/983de45f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/983de45f

Branch: refs/heads/master
Commit: 983de45f1b64730d917dd98907f381f7d196f92c
Parents: ce7dfd9
Author: Mike Percy <mp...@apache.org>
Authored: Thu Feb 11 11:03:39 2016 +0200
Committer: Jean-Daniel Cryans <jd...@gerrit.cloudera.org>
Committed: Thu Feb 11 23:27:22 2016 +0000

----------------------------------------------------------------------
 thirdparty/build-thirdparty.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/983de45f/thirdparty/build-thirdparty.sh
----------------------------------------------------------------------
diff --git a/thirdparty/build-thirdparty.sh b/thirdparty/build-thirdparty.sh
index 4d6b8a6..8e4acbe 100755
--- a/thirdparty/build-thirdparty.sh
+++ b/thirdparty/build-thirdparty.sh
@@ -101,7 +101,7 @@ if [ "$#" = "0" ]; then
   F_ALL=1
 else
   # Allow passing specific libs to build on the command line
-  for arg in "$*"; do
+  for arg in $*; do
     case $arg in
       "cmake")      F_CMAKE=1 ;;
       "gflags")     F_GFLAGS=1 ;;


[4/5] incubator-kudu git commit: Set -rpath in all thirdparty libs for compat with gold

Posted by jd...@apache.org.
Set -rpath in all thirdparty libs for compat with gold

Make sure that thirdparty shared libs are built with a -rpath that
includes thirdparty/installed-deps* because the GNU gold linker
specifies RUNPATH by default, instead of RPATH. This is due to the fact
that at the time of this writing, gold defaults to --enable-new-dtags
while binutils ld defaults to --disable-new-dtags [1].

Unfortunately, glibc does not search an executable's RUNPATH for
transitive dependencies [2], like it does for RPATH. This results in
symbol not found errors for full builds done using gold as the linker
unless we apply this change.

This patch adds the installed-deps directory to the -rpath of thirdparty
shared objects so that the correct paths are set and the symbols are
resolved.

This issue was originally identified by Todd, and here is the text of
his email to the dev list:

a) I usually use gold rather than binutils ld as my linker. gold generates
RUNPATH instead of RPATH by default, which has the difference that RUNPATH
doesn't propagate transitively. In other words, even though
protoc-gen-insertions has installed-deps/lib in its RUNPATH, it doesn't use
_that_ RPATH when looking for dependencies of libglog.so, because
libglog.so has its own RUNPATH.

b) my libglog.so's RUNPATH doesn't have installed-deps/. It turns out that,
after I rebuilt my thirdparty from git completely clean, that one didn't
end up with it either. It only got installed-deps/ in its RUNPATH before
because I had an old 'libgflags.la' file lying around.

c) we no longer generate 'libgflags.la' from the gflags build
after 7a68e1f8baee04eaf259f7567ddc39e09a0f0938 which switched from using
autotools to cmake to build and install gflag. This means that we don't
generate the libtool control file 'libgflags.la' anymore, though my old one
got orphaned in the build directory.

[1] http://blog.tremily.us/posts/rpath/
[2] https://sourceware.org/bugzilla/show_bug.cgi?id=13945

Change-Id: Ic50b3667f96cec73497248751e9afc785e3f7979
Reviewed-on: http://gerrit.cloudera.org:8080/2123
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/2567ed00
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/2567ed00
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/2567ed00

Branch: refs/heads/master
Commit: 2567ed0087ed6664a93ce1400e5f4f89c730cb14
Parents: 241e650
Author: Mike Percy <mp...@apache.org>
Authored: Thu Feb 11 19:35:03 2016 +0200
Committer: Jean-Daniel Cryans <jd...@gerrit.cloudera.org>
Committed: Thu Feb 11 23:29:25 2016 +0000

----------------------------------------------------------------------
 thirdparty/build-thirdparty.sh | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/2567ed00/thirdparty/build-thirdparty.sh
----------------------------------------------------------------------
diff --git a/thirdparty/build-thirdparty.sh b/thirdparty/build-thirdparty.sh
index 8e4acbe..9febc2d 100755
--- a/thirdparty/build-thirdparty.sh
+++ b/thirdparty/build-thirdparty.sh
@@ -154,6 +154,19 @@ fi
 EXTRA_CFLAGS="-g $EXTRA_CFLAGS"
 EXTRA_CXXFLAGS="-g $EXTRA_CXXFLAGS"
 
+save_env
+
+# Specifying -Wl,-rpath has different default behavior on GNU binutils ld vs.
+# the GNU gold linker. ld sets RPATH (due to defaulting to --disable-new-dtags)
+# and gold sets RUNPATH (due to defaulting to --enable-new-dtags). At the time
+# of this writing, contrary to the way RPATH is treated, when RUNPATH is
+# specified on a binary, glibc doesn't respect it for transitive (non-direct)
+# library dependencies (see https://sourceware.org/bugzilla/show_bug.cgi?id=13945).
+# So we must set RUNPATH for all deps-of-deps on the dep libraries themselves.
+# This applies both here and the locations elsewhere in this script where we
+# add $PREFIX/lib to -Wl,-rpath.
+EXTRA_LDFLAGS="-Wl,-rpath,$PREFIX/lib $EXTRA_LDFLAGS"
+
 if [ -n "$OS_LINUX" ] && [ -n "$F_ALL" -o -n "$F_LIBUNWIND" ]; then
   build_libunwind
 fi
@@ -204,10 +217,15 @@ if [ -n "$OS_LINUX" ] && [ -n "$F_ALL" -o -n "$F_NVML" ]; then
   build_nvml
 fi
 
+restore_env
+
 ### Build C++ dependencies
 
 PREFIX=$PREFIX_DEPS
 
+save_env
+EXTRA_LDFLAGS="-Wl,-rpath,$PREFIX/lib $EXTRA_LDFLAGS"
+
 if [ -n "$F_ALL" -o -n "$F_GFLAGS" ]; then
   build_gflags
 fi
@@ -236,6 +254,8 @@ if [ -n "$F_ALL" -o -n "$F_CRCUTIL" ]; then
   build_crcutil
 fi
 
+restore_env
+
 ## Build C++ dependencies with TSAN instrumentation
 
 if [ -n "$F_TSAN" ]; then
@@ -298,7 +318,7 @@ if [ -n "$F_TSAN" ]; then
   EXTRA_CXXFLAGS="-isystem $PREFIX_LIBSTDCXX_TSAN/include/c++/$GCC_VERSION/backward $EXTRA_CXXFLAGS"
   EXTRA_CXXFLAGS="-isystem $PREFIX_LIBSTDCXX_TSAN/include/c++/$GCC_VERSION $EXTRA_CXXFLAGS"
   EXTRA_CXXFLAGS="-L$PREFIX_LIBSTDCXX_TSAN/lib $EXTRA_CXXFLAGS"
-  EXTRA_LDFLAGS="-Wl,-rpath,$PREFIX_LIBSTDCXX_TSAN/lib $EXTRA_LDFLAGS"
+  EXTRA_LDFLAGS="-Wl,-rpath,$PREFIX_LIBSTDCXX_TSAN/lib,-rpath,$PREFIX/lib $EXTRA_LDFLAGS"
 
   if [ -n "$F_ALL" -o -n "$F_PROTOBUF" ]; then
     build_protobuf
@@ -311,7 +331,7 @@ if [ -n "$F_TSAN" ]; then
   EXTRA_CXXFLAGS="-isystem $PREFIX_LIBSTDCXX/include/c++/$GCC_VERSION/backward $EXTRA_CXXFLAGS"
   EXTRA_CXXFLAGS="-isystem $PREFIX_LIBSTDCXX/include/c++/$GCC_VERSION $EXTRA_CXXFLAGS"
   EXTRA_CXXFLAGS="-L$PREFIX_LIBSTDCXX/lib $EXTRA_CXXFLAGS"
-  EXTRA_LDFLAGS="-Wl,-rpath,$PREFIX_LIBSTDCXX/lib $EXTRA_LDFLAGS"
+  EXTRA_LDFLAGS="-Wl,-rpath,$PREFIX_LIBSTDCXX/lib,-rpath,$PREFIX/lib $EXTRA_LDFLAGS"
 
   if [ -n "$F_ALL" -o -n "$F_GFLAGS" ]; then
     build_gflags


[3/5] incubator-kudu git commit: Update NOTICE.txt to include Apache copyright

Posted by jd...@apache.org.
Update NOTICE.txt to include Apache copyright

According to http://apache.org/legal/src-headers.html#notice the
NOTICE.txt file should follow a particular template. This patch updates
the file to follow the template.

After going through all of the licenses in LICENSE.txt, I believe none
of them require special notification aside from inclusion in LICENSE.txt
for a source distribution.

I kept the mention of Cloudera as a courtesy, since Cloudera was the
original donor of Kudu to the ASF. This has been done in other Apache
projects as well.

Change-Id: I9bfb81f786e33c174eb625fd92b86dcffd97877b
Reviewed-on: http://gerrit.cloudera.org:8080/2108
Tested-by: Kudu Jenkins
Reviewed-by: Jean-Daniel Cryans


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/241e650c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/241e650c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/241e650c

Branch: refs/heads/master
Commit: 241e650c5aff36dad3c15d0331c4ceb33038d6e3
Parents: 983de45
Author: Mike Percy <mp...@apache.org>
Authored: Thu Feb 11 00:18:14 2016 +0200
Committer: Jean-Daniel Cryans <jd...@gerrit.cloudera.org>
Committed: Thu Feb 11 23:28:56 2016 +0000

----------------------------------------------------------------------
 NOTICE.txt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/241e650c/NOTICE.txt
----------------------------------------------------------------------
diff --git a/NOTICE.txt b/NOTICE.txt
index e346c66..f41d702 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,4 +1,8 @@
-Kudu
+Apache Kudu
+Copyright 2016 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
 
 Portions of this software were developed at
 Cloudera, Inc (http://www.cloudera.com/).


[5/5] incubator-kudu git commit: Reorg of release notes to be more flexible as we add more releases in future

Posted by jd...@apache.org.
Reorg of release notes to be more flexible as we add more releases in future

Change-Id: I2199ac2aae97a4152a8ca2c20e405fd6b27bf7fd
Reviewed-on: http://gerrit.cloudera.org:8080/2091
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kudu/commit/715722bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kudu/tree/715722bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kudu/diff/715722bc

Branch: refs/heads/master
Commit: 715722bc989d5db441d04839110a601178416515
Parents: 2567ed0
Author: Misty Stanley-Jones <ms...@cloudera.com>
Authored: Mon Feb 8 10:55:47 2016 -0800
Committer: Misty Stanley-Jones <mi...@apache.org>
Committed: Thu Feb 11 23:48:39 2016 +0000

----------------------------------------------------------------------
 docs/release_notes.adoc | 193 ++++++++++++++++++++++++++-----------------
 1 file changed, 118 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kudu/blob/715722bc/docs/release_notes.adoc
----------------------------------------------------------------------
diff --git a/docs/release_notes.adoc b/docs/release_notes.adoc
index b850b31..7962913 100644
--- a/docs/release_notes.adoc
+++ b/docs/release_notes.adoc
@@ -53,7 +53,7 @@ By combining all of these properties, Kudu targets support for families of
 applications that are difficult or impossible to implement on current-generation
 Hadoop storage technologies.
 
-[0.7.0]
+[[rn_0.7.0]]
 === Release notes specific to 0.7.0
 
 Kudu 0.7.0 is the first release done as part of the Apache Incubator and includes a number
@@ -64,7 +64,7 @@ See also +++<a href="https://issues.cloudera.org/issues/?jql=project%20%3D%20Kud
 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>+++.
 
-[0.7.0_incompatible_changes]
+[[rn_0.7.0_incompatible_changes]]
 ==== Incompatible changes
 
 . The C++ client includes a new API, `KuduScanBatch`, which performs better when a
@@ -84,13 +84,13 @@ quality and testing. The read path (scanners) has been improved by adding many o
 the features already supported by the C++ and Java clients. The Python client is no
 longer considered experimental.
 
-[0.7.0_new_features]
+[[rn_0.7.0_new_features]]
 ==== New features
 
 . With the goal of Spark integration in mind, a new `kuduRDD` API has been added,
 which wraps `newAPIHadoopRDD` and includes a default source for Spark SQL.
 
-[0.7.0_improvements]
+[[rn_0.7.0_improvements]]
 ==== Improvements
 
 . The Java client includes new methods `countPendingErrors()` and
@@ -99,7 +99,11 @@ retrieve outstanding row errors when configuring sessions with `AUTO_FLUSH_BACKG
 
 . New server-level metrics allow you to monitor CPU usage and context switching.
 
-[0.7.0_fixed_issues]
+. Kudu now builds on RHEL 7, CentOS 7, and SLES 12. Extra instructions are included
+for SLES 12.
+
+
+[[rn_0.7.0_fixed_issues]]
 ==== Fixed Issues
 
 . https://issues.cloudera.org/browse/KUDU-1288[KUDU-1288] fixes a severe file descriptor
@@ -108,7 +112,7 @@ leak, which could previously only be resolved by restarting the tablet server.
 . https://issues.cloudera.org/browse/KUDU-1250[KUDU-1250] fixes a hang in the Java
 client when processing an in-flight batch and the previous batch encountered an error.
 
-[0.7.0_changes]
+[[rn_0.7.0_changes]]
 ==== Other noteworthy changes
 
 . The file block manager's performance was improved, but it is still not recommended for
@@ -130,7 +134,19 @@ as well. This is typically achieved by defining the `_GLIBCXX_USE_CXX11_ABI` mac
 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/.
 
-[0.6.0]
+. The Python client is no longer considered experimental.
+
+==== Limitations
+
+See also <<beta_limitations>>. Where applicable, this list adds to or overrides that
+list.
+
+===== Operating System Limitations
+* 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.
+
+
+[[rn_0.6.0]]
 === Release notes specific to 0.6.0
 
 The 0.6.0 release contains incremental improvements and bug fixes. The most notable
@@ -149,7 +165,57 @@ instructions in link:installation.html#osx_from_source[OS X].
 
 The upgrade instructions are situated at link:installation.html#upgrade[Upgrade from 0.5.0 to 0.6.0].
 
-=== Kudu-Impala Integration Features
+==== Limitations
+
+See also <<beta_limitations>>. Where applicable, this list adds to or overrides that
+list.
+
+===== Operating System Limitations
+* 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.
+
+===== API Limitations
+* The Python client is still considered experimental.
+
+
+[[rn_0.5.0]]
+=== Release Notes Specific to 0.5.0
+
+==== Limitations
+
+See also <<beta_limitations>>. Where applicable, this list adds to or overrides that
+list.
+
+===== Operating System Limitations
+* 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.
+
+===== API Limitations
+* The Python client is considered experimental.
+
+=== About the Kudu Public Beta
+
+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
+link:https://issues.cloudera.org/projects/KUDU[public JIRA] and a public
+link:http://mail-archives.apache.org/mod_mbox/incubator-kudu-user/[mailing list], which will be
+monitored by the Kudu development team and community members. Commercial support
+is not available at this time.
+
+* 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.
+* 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.
+* 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.
+* 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.
+
+==== Kudu-Impala Integration Features
 `CREATE TABLE`::
   Impala supports creating and dropping tables using Kudu as the persistence layer.
   The tables follow the same internal / external approach as other tables in Impala,
@@ -177,67 +243,14 @@ High-efficiency queries::
   are evaluated as close as possible to the data. Query performance is comparable
   to Parquet in many workloads.
 
-== About the Kudu Public Beta
+[[beta_limitations]]
+==== Limitations of the Kudu Public Beta
 
-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
-link:https://issues.cloudera.org/projects/KUDU[public JIRA] and a public
-link:https://groups.google.com/forum/#!forum/kudu-user[mailing list], which will be
-monitored by the Kudu development team and community members. Commercial support
-is not available at this time.
+Items in this list may be amended or superseded by limitations listed in the release
+notes for specific Kudu releases above.
 
-* 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.
-* 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.
-* 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.
-* 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.
 
-== Disclaimer on Apache Incubation
-
-Apache Kudu is an effort undergoing incubation at The Apache Software
-Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is
-required of all newly accepted projects until a further review
-indicates that the infrastructure, communications, and decision making
-process have stabilized in a manner consistent with other successful
-ASF projects. While incubation status is not necessarily a reflection
-of the completeness or stability of the code, it does indicate that
-the project has yet to be fully endorsed by the ASF.
-
-
-== Resources
-
-- link:http://getkudu.io[Kudu Website]
-- link:http://github.com/cloudera/kudu[Kudu Github Repository]
-- link:index.html[Kudu Documentation]
-
-== Installation Options
-* A Quickstart VM is provided to get you up and running quickly.
-* You can install Kudu using provided deb/yum packages.
-* You can install Kudu, in clusters managed by Cloudera Manager, using parcels or deb/yum packages.
-* You can build Kudu from source.
-
-For full installation details, see link:installation.html[Kudu Installation].
-
-== Limitations of the Public Beta
-
-=== Operating System Limitations
-* RHEL 6.4 or newer, CentOS 6.4 or newer, and Ubuntu Trusty are are the only
-operating systems supported for installation in the public beta. Others may work
-but have not been tested.
-
-=== Storage Limitations
-* Kudu has been tested with up to 4 TB of data per tablet server. More testing
-is needed for denser storage configurations.
-
-=== Schema Limitations
-* Testing with more than 20 columns has been limited.
+===== Schema Limitations
 * 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.
 * The columns which make up the primary key must be listed first in the schema.
@@ -251,7 +264,7 @@ primary key definition.
 There is no way to run compaction manually, but dropping the table will reclaim the
 space immediately.
 
-=== Ingest Limitations
+===== Ingest Limitations
 * Ingest via Sqoop or Flume is not supported in the public beta. The recommended
 approach for bulk ingest is to use Impala’s `CREATE TABLE AS SELECT` functionality
 or use the Kudu Java or C++ API.
@@ -261,12 +274,12 @@ link:schema_design.html[Schema Design].
 * Tablets cannot currently be merged. Instead, create a new table with the contents
 of the old tables to be merged.
 
-=== Replication and Backup Limitations
+===== Replication and Backup Limitations
 * 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.
 
-=== Impala Limitations
+===== Impala Limitations
 * To use Kudu with Impala, you must install a special release of Impala called
 Impala_Kudu. Obtaining and installing a compatible Impala release is detailed in Kudu's
 link:kudu_impala_integration.html[Impala Integration] documentation.
@@ -288,24 +301,28 @@ a string key `name`, the predicate `WHERE ts >= 12345` will convert into an
 efficient range scan, whereas `where name > 'lipcon'` will currently fetch all
 data from the table and evaluate the predicate within Impala.
 
-=== Security Limitations
+===== Security Limitations
+
 * Authentication and authorization are not included in the public beta.
 * Data encryption is not included in the public beta.
 
-=== Client and API Limitations
+===== Client and API Limitations
+
 * Potentially-incompatible C++, Java and Python API changes may be required during the
 public beta.
 * `ALTER TABLE` is not yet fully supported via the client APIs. More `ALTER TABLE`
 operations will become available in future betas.
 
-=== Application Integration Limitations
+===== Application Integration Limitations
+
 * The Spark DataFrame implementation is not yet complete.
 
-=== Other Known Issues
+===== Other Known Issues
+
 The following are known bugs and issues with the current beta release. They will
 be addressed in later beta releases.
 
-* Building Kudu from source using `gcc` 4.6 causes runtime and test failures. Be sure
+* Building Kudu from source using `gcc` 4.6 or 4.7 causes runtime and test failures. Be sure
 you are using a different version of `gcc` if you build Kudu from source.
 * If the Kudu master is configured with the `-log_fsync_all` option, tablet servers
 and clients will experience frequent timeouts, and the cluster may become unusable.
@@ -314,7 +331,33 @@ 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.
 
-== Next Steps
+
+=== Disclaimer on Apache Incubation
+
+Apache Kudu is an effort undergoing incubation at The Apache Software
+Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is
+required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making
+process have stabilized in a manner consistent with other successful
+ASF projects. While incubation status is not necessarily a reflection
+of the completeness or stability of the code, it does indicate that
+the project has yet to be fully endorsed by the ASF.
+
+=== Resources
+
+- link:http://getkudu.io[Kudu Website]
+- link:http://github.com/cloudera/kudu[Kudu Github Repository]
+- link:index.html[Kudu Documentation]
+
+=== Installation Options
+* A Quickstart VM is provided to get you up and running quickly.
+* You can install Kudu using provided deb/yum packages.
+* You can install Kudu, in clusters managed by Cloudera Manager, using parcels or deb/yum packages.
+* You can build Kudu from source.
+
+For full installation details, see link:installation.html[Kudu Installation].
+
+=== Next Steps
 - link:quickstart.html[Kudu Quickstart]
 - link:installation.html[Installing Kudu]
 - link:configuration.html[Configuring Kudu]