<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="A new open source Apache Hadoop ecosystem project, Apache Kudu (incubating) completes Hadoop's storage layer to enable fast analytics on fast data" />
    <meta name="author" content="Cloudera" />
    <title>Apache Kudu (incubating) - Kudu FAQ</title>
    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
          integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
          crossorigin="anonymous">

    <!-- Custom styles for this template -->
    <link href="/css/justified-nav.css" rel="stylesheet" />

    <link href="/css/kudu.css" rel="stylesheet"/>
    <link href="/css/asciidoc.css" rel="stylesheet"/>
    <link rel="shortcut icon" href="/img/logo-favicon.ico" />
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" />

    

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
  </head>
  <body>
    <!-- Fork me on GitHub -->
    <a class="fork-me-on-github" href="https://github.com/apache/incubator-kudu"><img src="//aral.github.io/fork-me-on-github-retina-ribbons/right-cerulean@2x.png" alt="Fork me on GitHub" /></a>

    <div class="kudu-site container-fluid">
      <!-- Static navbar -->
        <nav class="container-fluid navbar-default">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            
            <a class="logo" href="/"><img src="/img/logo_small.png" width="80" /></a>
            
          </div>
          <div id="navbar" class="navbar-collapse collapse navbar-right">
            <ul class="nav navbar-nav">
              <li >
                <a href="/">Home</a>
              </li>
              <li >
                <a href="/overview.html">Overview</a>
              </li>
              <li >
                <a href="/docs/">Documentation</a>
              </li>
              <li >
                <a href="/releases/">Download</a>
              </li>
              <li >
                <a href="/blog/">Blog</a>
              </li>
              <li >
                <a href="/community.html">Community</a>
              </li>
              <li class="active">
                <a href="/faq.html">FAQ</a>
              </li>
            </ul>
          </div><!--/.nav-collapse -->
        </nav>


<div class="row-fluid">
  <div class="col-lg-12 faq">

<h2 class="no_toc" id="frequently-asked-questions">Frequently Asked Questions</h2>

<ul id="markdown-toc">
  <li><a href="#project-motivation" id="markdown-toc-project-motivation">Project Motivation</a></li>
  <li><a href="#project-status" id="markdown-toc-project-status">Project Status</a></li>
  <li><a href="#getting-started" id="markdown-toc-getting-started">Getting Started</a></li>
  <li><a href="#storage-details" id="markdown-toc-storage-details">Storage Details</a></li>
  <li><a href="#consistency-and-cap-theorem" id="markdown-toc-consistency-and-cap-theorem">Consistency and CAP Theorem</a></li>
  <li><a href="#working-with-other-storage-systems" id="markdown-toc-working-with-other-storage-systems">Working With Other Storage Systems</a></li>
  <li><a href="#hardware-and-operations" id="markdown-toc-hardware-and-operations">Hardware and Operations</a></li>
  <li><a href="#security" id="markdown-toc-security">Security</a></li>
  <li><a href="#schema-design" id="markdown-toc-schema-design">Schema Design</a></li>
  <li><a href="#indexes" id="markdown-toc-indexes">Indexes</a></li>
  <li><a href="#transactions" id="markdown-toc-transactions">Transactions</a></li>
</ul>

<h3 id="project-motivation">Project Motivation</h3>

<h4 id="why-use-column-storage-format-would-a-row-wise-format-increase-performance">Why use column storage format? Would a row-wise format increase performance?</h4>

<p>Analytic use-cases almost exclusively use a subset of the columns in the queried
table and generally aggregate values over a broad range of rows. This access pattern
is greatly accelerated by column oriented data. Operational use-cases are more
likely to access most or all of the columns in a row, and might be more appropriately
served by row oriented storage. A column oriented storage format was chosen for
Kudu because it’s primarily targeted at analytic use-cases.</p>

<p>There’s nothing that precludes Kudu from providing a row-oriented option, and it
could be included in a potential release.</p>

<h4 id="why-build-a-new-storage-engine-why-not-just-improve-apache-hbase-to-increase-its-scan-speed">Why build a new storage engine? Why not just improve Apache HBase to increase its scan speed?</h4>

<p>Kudu shares some characteristics with HBase. Like HBase, it is a real-time store
that supports key-indexed record lookup and mutation.</p>

<p>However, Kudu’s design differs from HBase in some fundamental ways:</p>

<ul>
  <li>Kudu’s data model is more traditionally relational, while HBase is schemaless.</li>
  <li>Kudu’s on-disk representation is truly columnar and follows an entirely different
storage design than HBase/BigTable.</li>
</ul>

<p>Making these fundamental changes in HBase would require a massive redesign, as opposed
to a series of simple changes. HBase is the right design for many classes of
applications and use cases and will continue to be the best storage engine for those
workloads.</p>

<h3 id="project-status">Project Status</h3>

<h4 id="is-apache-kudu-incubating-ready-to-be-deployed-into-production-yet">Is Apache Kudu (incubating) ready to be deployed into production yet?</h4>

<p>We don’t yet recommend this – Kudu is currently in Beta. During the next few months we
might have to break backwards compatibility with our current on-the-wire or on-disk
formats or change public APIs. There is also still work to do to improve data durability
and consistency. Kudu is currently in a good state for using in a proof-of-concept
scenario for a future deployment.</p>

<p>For more details on the Kudu Beta period, see the
<a href="docs/release_notes.html#_about_the_kudu_public_beta">release notes</a>.</p>

<h4 id="when-can-i-expect-ga-or-version-10">When can I expect GA or version 1.0?</h4>

<p>There is no set timeline for general availability (GA). We are looking forward to working
with the community to continue stabilizing and improving Kudu. We want to implement some
critical missing features such as security and fill in other gaps before releasing Kudu
1.0.</p>

<h4 id="is-kudu-open-source">Is Kudu open source?</h4>

<p>Yes, Kudu is open source and licensed under the Apache Software License, version 2.0. The
project is under incubation with the Apache Software Foundation.</p>

<h4 id="why-was-kudu-developed-internally-at-cloudera-before-its-release">Why was Kudu developed internally at Cloudera before its release?</h4>

<p>We believe strongly in the value of open source for the long-term sustainable
development of a project. We also believe that it is easier to work with a small
group of colocated developers when a project is very young. Being in the same
organization allowed us to move quickly during the initial design and development
of the system.</p>

<p>Now that Kudu is public and is part of the Apache Software Foundation, we look
forward to working with a larger community during its next phase of development.</p>

<h3 id="getting-started">Getting Started</h3>

<h4 id="is-training-available">Is training available?</h4>

<p>Currently, commercial training for Kudu is not available. You can get help with using
Kudu through <a href="docs/index.html">documentation</a>,
the <a href="https://groups.google.com/forum/#!forum/kudu-user">kudu-user mailing list</a>,
the <a href="https://getkudu-slack.herokuapp.com/">Kudu chat room</a>, and the <a href="https://community.cloudera.com/t5/Beta-Releases-Kudu-RecordService/bd-p/Beta">Cloudera beta
release forum</a>.</p>

<h4 id="is-there-a-quickstart-vm">Is there a quickstart VM?</h4>

<p>Yes. Instructions on getting up and running on Kudu via a VM are provided in Kudu’s
<a href="http://kudu.apache.org/docs/quickstart.html">quickstart guide</a>.</p>

<h3 id="storage-details">Storage Details</h3>

<h4 id="how-does-kudu-store-its-data-is-the-underlying-data-storage-readable-without-going-through-kudu">How does Kudu store its data? Is the underlying data storage readable without going through Kudu?</h4>

<p>Kudu accesses storage devices through the local filesystem, and works best with Ext4 or
XFS. Kudu handles striping across <abbr title="just a bunch of disks">JBOD</abbr> mount
points, and does not require <abbr title="redundant array of inexpensive disks">RAID</abbr>.
Kudu’s write-ahead logs (WALs) can be stored on separate locations from the data files,
which means that WALs can be stored on <abbr title="solid state drives">SSDs</abbr> to
enable lower-latency writes on systems with both SSDs and magnetic disks.</p>

<p>Kudu’s on-disk data format closely resembles Parquet, with a few differences to
support efficient random access as well as updates. The underlying data is not
directly queryable without using the Kudu client APIs. The Kudu developers have worked hard
to ensure that Kudu’s scan performance is performant, and has focused on storing data
efficiently without making the trade-offs that would be required to allow direct access
to the data files.</p>

<h4 id="is-kudu-an-in-memory-database">Is Kudu an in-memory database?</h4>

<p>Kudu is not an
<a href="https://en.wikipedia.org/wiki/In-memory_database">in-memory database</a>
since it primarily relies on disk storage. This should not be confused with Kudu’s
experimental use of
<a href="https://en.wikipedia.org/wiki/Non-volatile_memory">persistent memory</a>
which is integrated in the block cache. In the future, this integration this will
allow the cache to survive tablet server restarts, so that it never starts “cold”.</p>

<p>In addition, Kudu’s C++ implementation can scale to very large heaps. Coupled
with its CPU-efficient design, Kudu’s heap scalability offers outstanding
performance for data sets that fit in memory.
#### Does Kudu run its own format type or does it use Parquet? What is the compression recommendation?</p>

<p>Kudu’s on-disk data format closely resembles Parquet, with a few differences to
support efficient random access as well as updates. The underlying data is not
directly queryable without using the Kudu client APIs. The Kudu developers have worked
hard to ensure that Kudu’s scan performance is performant, and has focused on
storing data efficiently without making the trade-offs that would be required to
allow direct access to the data files.</p>

<p>The recommended compression codec is dependent on the appropriate trade-off
between cpu utilization and storage efficiency and is therefore use-case dependent.</p>

<h4 id="should-compactions-be-managed">Should compactions be managed?</h4>

<p>Compactions in Kudu are designed to be small and to always be running in the
background. They operate under a (configurable) budget to prevent tablet servers
from unexpectedly attempting to rewrite tens of GB of data at a time. Since compactions
are so predictable, the only tuning knob available is the number of threads dedicated
to flushes and compactions in the <em>maintenance manager</em>.</p>

<h4 id="what-is-the-compaction-performance-like">What is the compaction performance like?</h4>

<p>Kudu runs a background compaction process that incrementally and constantly
compacts data. Constant small compactions provide predictable latency by avoiding
major compaction operations that could monopolize CPU and IO resources.</p>

<h4 id="is-there-a-time-to-live-property-as-in-hbase-to-delete-a-record-automatically">Is there a time-to-live property as in HBase to delete a record automatically?</h4>

<p>No, Kudu does not currently support such a feature.</p>

<h4 id="do-the-tablet-servers-require-a-linux-filesystem-or-control-the-storage-devices-directly">Do the tablet servers require a Linux filesystem or control the storage devices directly?</h4>

<p>The tablet servers store data on the Linux filesystem. We recommend ext4 or xfs
mount points for the storage directories. Typically, a Kudu tablet server will
share the same partitions as existing HDFS datanodes.</p>

<h4 id="are-there-chances-of-region-server-hotspotting-like-with-hbase-and-how-does-kudu-mitigate-this">Are there chances of region server hotspotting like with HBase and how does Kudu mitigate this?</h4>

<p>Hotspotting in HBase is an attribute inherited from the distribution strategy used.</p>

<p>By default, HBase uses range based distribution. Range based partitioning stores
ordered values that fit within a specified range of a provided key contiguously
on disk. Range based partitioning is efficient when there are arge numbers of
concurrent small queries, as only servers in the cluster that have values within
the range specified by the query will be recruited to process that query. Range
partitioning is susceptible to hotspots, either because the key(s) used to
specify the range exhibits “data skew” (the number of rows within each range
is not uniform), or some data is queried more frequently creating “workload
skew”.</p>

<p>In contrast, hash based distribution specifies a certain number of “buckets”
and distribution keys are passed to a hash function that produces the value of
the bucket that the row is assigned to. If the distribution key is chosen
carefully (a unique key with no business meaning is ideal) hash distribution
will result in each server in the cluster having a uniform number of rows. Hash
based distribution protects against both data skew and workload skew.
Additionally, it provides the highest possible throughput for any individual
query because all servers are recruited in parallel as data will be evenly
spread across every server in the cluster. However, optimizing for throughput by
recruiting every server in the cluster for every query comes compromises the
maximum concurrency that the cluster can achieve. HBase can use hash based
distribution by “salting” the row key.</p>

<p>Kudu supports both approaches, giving you the ability choose to emphasize
concurrency at the expense of potential data and workload skew with range
partitioning, or query throughput at the expense of concurrency through hash
partitioning.</p>

<h4 id="is-there-any-limitation-to-the-size-of-data-that-can-be-added-to-a-column">Is there any limitation to the size of data that can be added to a column?</h4>

<p>There is no hard limit imposed by Kudu, but large values (10s of KB and above)
are likely to perform poorly and may cause stability issues in the current beta
release.</p>

<h4 id="does-kudu-support-dynamic-partitioning">Does Kudu support dynamic partitioning?</h4>

<p>Kudu is a storage engine, not a SQL engine. Dynamic partitions are created at
execution time rather than at query time, but in either case the process will
look the same from Kudu’s perspective: the query engine will pass down
partition keys to Kudu.</p>

<h3 id="consistency-and-cap-theorem">Consistency and CAP Theorem</h3>

<h4 id="what-is-kudus-consistency-model-is-kudu-a-cp-or-ap-system">What is Kudu’s consistency model? Is Kudu a CP or AP system?</h4>

<p>In the parlance of the CAP theorem, Kudu is a
<abbr title="consistent (but not available) under network partitions">CP</abbr>
type of storage engine. Writing to a tablet will be delayed if the server that hosts that
tablet’s leader replica fails until a quorum of servers is able to elect a new leader and
acknowledge a given write request.</p>

<p>Kudu gains the following properties by using Raft consensus:</p>

<ul>
  <li>Leader elections are fast. As soon as the leader misses 3 heartbeats (half a second each), the
remaining followers will elect a new leader which will start accepting operations right away.
This whole process usually takes less than 10 seconds.</li>
  <li>Follower replicas don’t allow writes, but they do allow reads when fully up-to-date data is not
required. Thus, queries against historical data (even just a few minutes old) can be
sent to any of the replicas. If that replica fails, the query can be sent to another
replica immediately.</li>
</ul>

<p>During Kudu’s beta period, those properties maybe not be fully implemented and
may suffer from some deficiencies. See the answer to
“<a href="#is-kudus-consistency-level-tunable">Is Kudu’s consistency level tunable?</a>”
for more information.</p>

<h4 id="is-kudus-consistency-level-tunable">Is Kudu’s consistency level tunable?</h4>

<p>Yes, Kudu’s consistency level is partially tunable, both for writes and reads (scans):</p>

<ul>
  <li>Writes to a single tablet are always internally consistent. When writing to multiple tablets,
with multiple clients, the user has a choice between no consistency (the default) and
enforcing “external consistency” in two different ways: one that optimizes for latency
requires the user to perform additional work and another that requires no additional
work but can result in some additional latency.</li>
  <li>Scans have “Read Committed” consistency by default. If the user requires strict-serializable
scans it can choose the <code>READ_AT_SNAPSHOT</code> mode and, optionally, provide a timestamp. The default
option is non-blocking but the <code>READ_AT_SNAPSHOT</code> option may block when reading from non-leader
replicas.</li>
</ul>

<p>Kudu’s transactional semantics are a work in progress, see
<a href="docs/transaction_semantics.html">Kudu Transaction Semantics</a> for
further information and caveats.</p>

<h4 id="how-does-kudu-handle-dirty-reads">How does Kudu handle dirty reads?</h4>

<p>Neither “read committed” nor “READ_AT_SNAPSHOT” consistency modes permit dirty reads.</p>

<h4 id="where-is-kudus-jepsen-report">Where is Kudu’s Jepsen report?</h4>

<p>No one has yet run <a href="https://github.com/aphyr/jepsen">Jepsen</a> on Kudu, but it
would be a very welcome contribution. However, we know of
<a href="docs/transaction_semantics.html#known_issues">several issues</a>
that need to be resolved before Kudu can pass a Jepsen serializable consistency
test. We are committed to passing Jepsen, as well as other consistency-focused stress
tests, before releasing Kudu 1.0.</p>

<h3 id="working-with-other-storage-systems">Working With Other Storage Systems</h3>

<h4 id="can-data-be-loaded-directly-into-kudu-what-ingest-tools-can-be-used">Can data be loaded directly into Kudu? What ingest tools can be used?</h4>

<p>Kudu provides direct access via Java and C++ APIs. An experimental Python API is
also available and is expected to be fully supported in the future. The easiest
way to load data into Kudu is to use a <code>CREATE TABLE ... AS SELECT * FROM ...</code>
statement in Impala. Although Kudu has not been extensively tested to work with
ingest tools such as Flume, Sqoop, or Kafka, several of these have been
experimentally tested. Explicit support for these ingest tools is expected with
Kudu’s first generally available release.</p>

<h4 id="whats-the-most-efficient-way-to-bulk-load-data-into-kudu">What’s the most efficient way to bulk load data into Kudu?</h4>

<p>The easiest way to load data into Kudu is if the data is already managed by Impala.
In this case, a simple <code>INSERT INTO TABLE some_kudu_table SELECT * FROM some_csv_table</code>
does the trick.</p>

<p>You can also use Kudu’s MapReduce OutputFormat to load data from HDFS, HBase, or
any other data store that has an InputFormat.</p>

<p>No tool is provided to load data directly into Kudu’s on-disk data format. We
have found that for many workloads, the insert performance of Kudu is comparable
to bulk load performance of other systems.</p>

<h4 id="what-kinds-of-data-can-kudu-store-can-it-accept-json">What kinds of data can Kudu store? Can it accept JSON?</h4>

<p>Kudu uses typed storage and currently does not have a specific type for semi-
structured data such as JSON. Semi-structured data can be stored in a STRING or
BINARY column, but large values (10s of KB or more) are likely to cause
performance or stability problems in the current beta release.</p>

<p>Fuller support for semi-structured types like JSON and protobuf will be added in
the future, contingent on demand from early adopters.</p>

<h4 id="is-there-a-jdbc-driver-available">Is there a JDBC driver available?</h4>

<p>Kudu is not a SQL engine. The availability of JDBC and ODBC drivers will be
dictated by the SQL engine used in combination with Kudu.</p>

<h4 id="do-you-need-hadoop-to-run-kudu">Do you need Hadoop to run Kudu?</h4>

<p>Kudu does not rely on any Hadoop components if it is accessed using its
programmatic APIs. However, most usage of Kudu will include at least one Hadoop
component such as MapReduce, Spark, or Impala. Components that have been
modified to take advantage of Kudu storage, such as Impala, might have Hadoop
dependencies.</p>

<h4 id="what-is-the-relationship-between-kudu-and-hdfs-does-kudu-require-hdfs">What is the relationship between Kudu and HDFS? Does Kudu require HDFS?</h4>

<p>Kudu is a separate storage system. It does not rely on or run on top of HDFS.
Kudu can coexist with HDFS on the same cluster.</p>

<h4 id="why-doesnt-kudu-store-its-data-in-hdfs">Why doesn’t Kudu store its data in HDFS?</h4>

<p>We considered a design which stored data on HDFS, but decided to go in a different
direction, for the following reasons:</p>

<ul>
  <li>Kudu handles replication at the logical level using Raft consensus, which makes
HDFS replication redundant. We could have mandated a replication level of 1, but
that is not HDFS’s best use case.</li>
  <li>Filesystem-level snapshots provided by HDFS do not directly translate to Kudu support for
snapshots, because it is hard to predict when a given piece of data will be flushed
from memory. In addition, snapshots only make sense if they are provided on a per-table
level, which would be difficult to orchestrate through a filesystem-level snapshot.</li>
  <li>HDFS security doesn’t translate to table- or column-level ACLs. Similar to HBase
ACLs, Kudu would need to implement its own security system and would not get much
benefit from the HDFS security model.</li>
  <li>Kudu’s scan performance is already within the same ballpark as Parquet files stored
on HDFS, so there’s no need to accomodate reading Kudu’s data files directly.</li>
</ul>

<h4 id="what-frameworks-are-integrated-with-kudu-for-data-access">What frameworks are integrated with Kudu for data access?</h4>

<p>Kudu is already integrated with Impala, MapReduce, and Spark (beta). Additional
frameworks are expected for GA with Hive being the current highest priority
addition.</p>

<h4 id="can-i-colocate-kudu-with-hdfs-on-the-same-servers">Can I colocate Kudu with HDFS on the same servers?</h4>

<p>Kudu can be colocated with HDFS on the same data disk mount points. This is similar
to colocating Hadoop and HBase workloads. Kudu has been extensively tested
in this type of configuration, with no stability issues. For latency-sensitive workloads,
consider dedicating an SSD to Kudu’s WAL files.</p>

<h3 id="hardware-and-operations">Hardware and Operations</h3>

<h4 id="what-are-kudus-runtime-dependencies">What are Kudu’s runtime dependencies?</h4>

<p>Kudu itself doesn’t have any service dependencies and can run on a cluster without Hadoop,
Impala, Spark, or any other project.</p>

<p>If you want to use Impala, note that Impala depends on Hive’s metadata server, which has
its own dependencies on Hadoop. It is not currently possible to have a pure Kudu+Impala
deployment.</p>

<h4 id="should-the-master-node-have-more-ram-than-worker-nodes">Should the master node have more RAM than worker nodes?</h4>

<p>For small clusters with fewer than 100 nodes, with reasonable numbers of tables
and tablets, the master node requires very little RAM, typically 1 GB or less.
For workloads with large numbers of tables or tablets, more RAM will be
required, but not more RAM than typical Hadoop worker nodes.</p>

<h4 id="is-the-master-node-a-single-point-of-failure">Is the master node a single point of failure?</h4>

<p>The beta release of Kudu includes only experimental support for master node
failover, with some known limitations. Kudu’s first generally available
release will feature a highly available master process.</p>

<h4 id="does-kudu-require-the-use-of-ssds">Does Kudu require the use of SSDs?</h4>

<p>No, SSDs are not a requirement of Kudu. Kudu is designed to take full advantage
of fast storage and large amounts of memory if present, but neither is required.</p>

<h4 id="can-a-kudu-deployment-be-geo-distributed">Can a Kudu deployment be geo-distributed?</h4>

<p>We don’t recommend geo-distributing tablet servers this time because of the possibility
of higher write latencies. In addition, Kudu is not currently aware of data placement.
This could lead to a situation where the master might try to put all replicas
in the same datacenter. We plan to implement the necessary features for geo-distribution
in a future release.</p>

<h4 id="where-is-the-kudu-shell">Where is the Kudu shell?</h4>

<p>Kudu doesn’t yet have a command-line shell. If the Kudu-compatible version of Impala is
installed on your cluster then you can use it as a replacement for a shell. See also the
docs for the <a href="docs/kudu_impala_integration.html">Kudu Impala Integration</a>.</p>

<h4 id="is-the-kudu-master-a-bottleneck">Is the Kudu Master a bottleneck?</h4>

<p>Although the Master is not sharded, it is not expected to become a bottleneck for
the following reasons.</p>

<ul>
  <li>Like many other systems, the master is not on the hot path once the tablet
locations are cached.</li>
  <li>The Kudu master process is extremely efficient at keeping everything in memory.
In our testing on an 80-node cluster, the 99.99th percentile latency for getting
tablet locations was on the order of hundreds of microseconds (not a typo).</li>
</ul>

<h4 id="what-operating-systems-does-kudu-support">What operating systems does Kudu support?</h4>

<p>Linux is required to run Kudu. See the <a href="docs/installation.html#_prerequisites_and_requirements">installation
guide</a> for details. OSX
is supported as a development platform in Kudu 0.6.0 and newer. The Java client
can be used on any JVM 7+ platform.</p>

<h4 id="what-linux-based-operating-systems-are-known-not-to-work-with-kudu">What Linux-based operating systems are known NOT to work with Kudu?</h4>

<p><strong>RHEL 5</strong>: the kernel is missing critical features for handling disk space
reclamation (such as hole punching), and it is not possible to run applications
which use C++11 language features.</p>

<p><strong>Debian 7</strong>: ships with gcc 4.7.2 which produces broken Kudu optimized code,
and there is insufficient support for applications which use C++11 language
features.</p>

<p><strong>SLES 11</strong>: it is not possible to run applications which use C++11 language
features.</p>

<h4 id="how-can-i-back-up-my-kudu-data">How can I back up my Kudu data?</h4>

<p>Kudu doesn’t yet have a built-in backup mechanism. Similar to bulk loading data,
Impala can help if you have it available. You can use it to copy your data into
Parquet format using a statement like:</p>

<pre><code>INSERT INTO TABLE some_parquet_table SELECT * FROM kudu_table
</code></pre>

<p>then use <a href="http://hadoop.apache.org/docs/r1.2.1/distcp2.html">distcp</a>
to copy the Parquet data to another cluster. While Kudu is in beta, we’re not
expecting people to deploy mission-critical workloads on it yet.</p>

<h4 id="can-the-wal-transaction-logs-be-used-to-build-a-disaster-recovery-site">Can the WAL transaction logs be used to build a disaster recovery site?</h4>

<p>Currently, Kudu does not support any mechanism for shipping or replaying WALs
between sites.</p>

<h4 id="is-there-a-single-wal-per-tablet-or-per-table">Is there a single WAL per tablet or per table?</h4>

<p>There is one WAL per tablet.</p>

<h3 id="security">Security</h3>

<h4 id="how-is-security-handled-in-kudu">How is security handled in Kudu?</h4>

<p>Kudu has no security features at the moment, but this is a goal for GA.</p>

<h3 id="schema-design">Schema Design</h3>

<h4 id="can-kudu-tolerate-changing-schemas">Can Kudu tolerate changing schemas?</h4>

<p>Yes, Kudu provides the ability to add, drop, and rename columns/tables.
Currently it is not possible to change the type of a column in-place, though
this is expected to be added to a subsequent Kudu release.</p>

<h4 id="are-there-best-practices-in-terms-of-data-modeling">Are there best practices in terms of data modeling?</h4>

<p>Kudu tables must have a unique primary key. Kudu has not been tested with
columns containing large values (10s of KB and higher) and performance problems
when using large values are anticipated. See
<a href="http://kudu.apache.org/docs/schema_design.html">Schema Design</a>.</p>

<h4 id="can-kudu-be-used-to-replace-lambda-architectures">Can Kudu be used to replace Lambda Architectures?</h4>

<p>In many cases Kudu’s combination of real-time and analytic performance will
allow the complexity inherent to Lambda architectures to be simplified through
the use of a single storage engine.</p>

<h4 id="is-there-a-way-to-force-the-order-of-execution-of-a-list-statement-ie-force-an-update-on-table-a-after-a-previous-insert-on-table-b">Is there a way to force the order of execution of a list statement? (ie force an update on table A after a previous insert on table B)?</h4>

<p>When using the Kudu API, users can choose to perform synchronous operations.
If a sequence of synchronous operations is made, Kudu guarantees that timestamps
are assigned in a corresponding order.</p>

<h4 id="should-i-use-kudu-for-oltp-type-workloads-how-does-kudu-relate-to-spanner-from-an-oltp-standpoint">Should I use Kudu for OLTP-type workloads? How does Kudu relate to Spanner from an OLTP standpoint?</h4>

<p>Kudu is inspired by Spanner in that it uses a consensus-based replication design and
timestamps for consistency control, but the on-disk layout is pretty different.</p>

<p>Kudu was designed and optimized for OLAP workloads and lacks features such as multi-row
transactions and secondary indexing typically needed to support OLTP.</p>

<p>As a true column store, Kudu is not as efficient for OLTP as a row store would be. There are also
currently some implementation issues that hurt Kudu’s performance on Zipfian distribution
updates (see the YCSB results in the performance evaluation of our <a href="kudu.pdf">draft paper</a>.</p>

<p>Our intention with the Kudu beta is that if you have a <em>light</em> OLTP-like workload,
it should work, but if you have mostly random accesses something like HBase is probably better.</p>

<h3 id="indexes">Indexes</h3>

<h4 id="can-multi-column-indexes-be-created">Can multi-column indexes be created?</h4>

<p>Kudu supports compound primary keys. Secondary indexes, compound or not, are not
currently supported.</p>

<h4 id="does-kudu-support-secondary-indexes">Does Kudu support secondary indexes?</h4>

<p>No, Kudu does not support secondary indexes. Random access is only possible through the
primary key. For analytic drill-down queries, Kudu has very fast single-column scans which
allow it to produce sub-second results when querying across billions of rows on small
clusters.</p>

<h4 id="are-index-updates-maintained-automatically">Are index updates maintained automatically?</h4>

<p>Kudu’s primary key is automatically maintained. Secondary indexes, manually or
automatically maintained, are not currently supported.</p>

<h4 id="is-there-a-concept-like-partitioning-keys-like-with-cassandra-primary-and-secondary-index-concepts">Is there a concept like partitioning keys like with Cassandra (primary and secondary index concepts)?</h4>

<p>Kudu’s primary key can be either simple (a single column) or compound
(multiple columns). Within any tablet, rows are written in the sort order of the
primary key. In the case of a compound key, sorting is determined by the order
that the columns in the key are declared. For hash-based distribution, a hash of
the entire key is used to determine the “bucket” that values will be placed in.</p>

<p>With either type of partitioning, it is possible to partition based on only a
subset of the primary key column. For example, a primary key of “(host, timestamp)”
could be range-partitioned on only the timestamp column.</p>

<h4 id="does-kudu-have-relational-features-like-autoincrement-column-pkfk-constraints-or-built-in-indexes">Does Kudu have relational features like autoincrement column, PK/FK constraints, or built-in indexes?</h4>

<p>Kudu tables have a primary key that is used for uniqueness as well as providing
quick access to individual rows. Auto-incrementing columns, foreign key constraints,
and secondary indexes are not currently supported, but could be added in subsequent
Kudu releases.</p>

<h3 id="transactions">Transactions</h3>

<h4 id="does-kudu-support-multi-row-transactions">Does Kudu support multi-row transactions?</h4>

<p>No, Kudu does not support multi-row transactions at this time. However, single row
operations are atomic within that row.</p>

<h4 id="does-kudu-offer-acid-compliance">Does Kudu offer ACID compliance?</h4>

<p>Kudu is designed to eventually be fully ACID compliant. However, multi-row
transactions are not yet implemented. The single-row transaction guarantees it
currently provides are very similar to HBase.</p>

<h4 id="is-a-rollback-concept-supported">Is a rollback concept supported?</h4>

<p>Kudu does not currently support transaction rollback.</p>


  </div>
</div>

      <footer class="footer">
        <p class="pull-left">
        <a href="http://incubator.apache.org"><img src="/img/apache-incubator.png" width="225" height="53" align="right"/></a>
        </p>
        <p class="small">
        Apache Kudu (incubating) 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.

        Copyright &copy; 2016 The Apache Software Foundation. 
        </p>
      </footer>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
            integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
            crossorigin="anonymous"></script>
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-68448017-1', 'auto');
      ga('send', 'pageview');
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.1.0/anchor.js"></script>
    <script>
      anchors.options = {
        placement: 'right',
        visible: 'touch',
      };
      anchors.add();
    </script>
  </body>
</html>

