| <!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) - Apache Kudu (incubating) Weekly Update April 4, 2016</title> |
| <!-- Bootstrap core CSS --> |
| <link href="/css/bootstrap.min.css" rel="stylesheet" /> |
| |
| <!-- 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" /> |
| |
| |
| <link rel="alternate" type="application/atom+xml" |
| title="RSS Feed for Apache Kudu blog" |
| href="/feed.xml" /> |
| |
| |
| <!-- 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 class="active"> |
| <a href="/blog/">Blog</a> |
| </li> |
| <li > |
| <a href="/community.html">Community</a> |
| </li> |
| <li > |
| <a href="/faq.html">FAQ</a> |
| </li> |
| </ul> |
| </div><!--/.nav-collapse --> |
| </nav> |
| |
| <div class="row header"> |
| <div class="col-lg-12"> |
| <h2><a href="/blog">Apache Kudu (incubating) Blog</a></h2> |
| </div> |
| </div> |
| |
| <div class="row-fluid"> |
| <div class="col-lg-9"> |
| <article> |
| <header> |
| <h1 class="entry-title">Apache Kudu (incubating) Weekly Update April 4, 2016</h1> |
| <p class="meta">Posted 04 Apr 2016 by Todd Lipcon</p> |
| </header> |
| <div class="entry-content"> |
| <p>Welcome to the third edition of the Kudu Weekly Update. This weekly blog post |
| covers ongoing development and news in the Apache Kudu (incubating) project.</p> |
| |
| <!--more--> |
| |
| <p>If you find this post useful, please let us know by emailing the |
| <a href="mailto:user@kudu.incubator.apache.org">kudu-user mailing list</a> or |
| tweeting at <a href="https://twitter.com/ApacheKudu">@ApacheKudu</a>. Similarly, if you’re |
| aware of some Kudu news we missed, let us know so we can cover it in |
| a future post.</p> |
| |
| <h2 id="development-discussions-and-code-in-progress">Development discussions and code in progress</h2> |
| |
| <ul> |
| <li> |
| <p>The 0.8.0 release train is progressing nicely. Jean-Daniel Cryans posted a first |
| release candidate <a href="http://mail-archives.apache.org/mod_mbox/incubator-kudu-dev/201604.mbox/%3CCAGpTDNfA-hsv6xkeNcvwBGarP1sri%2BvBYqYNt70YWeH44_QPSw%40mail.gmail.com%3E">VOTE thread</a> |
| on the dev mailing list. Please download the release candidate and give it a try.</p> |
| </li> |
| <li> |
| <p>Ara Ebrahimi’s implementation of a <a href="https://github.com/apache/incubator-kudu/blob/master/java/kudu-flume-sink/">Kudu sink for Apache Flume</a> |
| was completed this week. Mike Percy worked on some follow-up around documentation and a shaded |
| <em>jar-with-dependencies</em> for easier consumption.</p> |
| </li> |
| <li> |
| <p>Mike also worked on and committed an <a href="http://gerrit.cloudera.org:8080/#/c/2640/">improvement to the Java API</a> |
| so that error results for failed write operations are easier to handle. Previously, |
| clients had to perform string comparisons to know whether an insert failed due |
| to something like a duplicate key constraint rather than some other less expected |
| error.</p> |
| </li> |
| <li> |
| <p>After some early cluster testing of the new implementation of scanner predicates, |
| a few tricky bugs were discovered. The first was around proper handling of inequality |
| predicates on floating point columns. The second involved handling predicates like |
| ‘my_int8_col <= 127’: for non-nullable columns, this predicate is a tautology |
| and can be eliminated. However, for nullable columns, such a predicate is equivalent |
| to ‘my_int8_col IS NOT NULL’. In order to fix this, Dan Burkert added an internal |
| <a href="http://gerrit.cloudera.org:8080/#/c/2671/">implementation of ‘IS NOT NULL’</a>.</p> |
| |
| <p>These bugs also exposed a few gaps in test coverage around predicate handling. Dan |
| added a couple thousand lines worth of new test coverage both from <a href="http://gerrit.cloudera.org:8080/2677">C++</a> |
| and <a href="http://gerrit.cloudera.org:8080/#/c/2591/">Java</a>.</p> |
| |
| <p>These exhaustive tests also identified a <a href="https://issues.apache.org/jira/browse/KUDU-1386">gap in Kudu’s handling of NaN |
| float values</a>. The team |
| elected to leave this as a known issue for now, since usage of NaN is relatively |
| rare.</p> |
| </li> |
| <li> |
| <p>Todd Lipcon fixed a <a href="http://gerrit.cloudera.org:8080/#/c/2483/">bug in Kudu’s implementation of Raft configuration |
| change</a>. |
| This bug could cause tablet replicas to become “stuck” after certain types of network |
| partitions. The fix will be included in the upcoming 0.8 release.</p> |
| </li> |
| <li> |
| <p>Mike Percy has been working on a <a href="http://gerrit.cloudera.org:8080/#/c/2595/">bug</a> |
| where tablet servers fail to start up after their write-ahead logs (WALs) have been |
| truncated. This can happen on certain types of machine crashes, or if the disks |
| fill up under a write workload.</p> |
| </li> |
| <li> |
| <p>Todd Lipcon spent time this week testing Kudu on a small cluster with a 3TB |
| TPC-H dataset. In particular, he was focusing on concurrent query workloads, |
| including scenarios with multiple read-only users in addition to combining |
| a query workload with a write workload. As a result, he identified a few |
| issues around Kudu’s handling of RPCs in overload conditions.</p> |
| |
| <p>In order to improve the behavior on the server side, Todd changed the RPC |
| scheduling algorithm to use an <a href="https://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling">earliest-deadline-first</a> |
| policy. This has the effect of preventing query timeouts: a query which |
| is closest to experiencing a timeout will be scheduled with higher priority |
| over those which have plenty of time left.</p> |
| |
| <p>In addition, this work identified a few bugs in the Kudu C++ client. |
| In particular, in the case where the server was overloaded, the client |
| would sometimes <a href="http://gerrit.cloudera.org:8080/#/c/2654/">incorrectly rewind to the start of the current |
| tablet</a> resulting in incorrect |
| results. In other cases, the client would end up in a <a href="http://gerrit.cloudera.org:8080/#/c/2709/">tight loop sending |
| RPCs to the master</a>. Fixes |
| for both of these issues will be in the upcoming 0.8 release.</p> |
| </li> |
| </ul> |
| |
| <h2 id="upcoming-talks-and-meetups">Upcoming talks and meetups</h2> |
| |
| <ul> |
| <li>Todd Lipcon will be presenting an introductory Kudu talk at <a href="http://www.dataengconf.com/schedule/">DataEngConf</a> |
| on Friday, April 8th.</li> |
| </ul> |
| |
| </div> |
| </article> |
| |
| |
| </div> |
| <div class="col-lg-3 recent-posts"> |
| <h3>Recent posts</h3> |
| <ul> |
| |
| <li> <a href="/2016/07/11/weekly-update.html">Apache Kudu (incubating) Weekly Update July 11, 2016</a> </li> |
| |
| <li> <a href="/2016/07/01/apache-kudu-0-9-1-released.html">Apache Kudu (incubating) 0.9.1 released</a> </li> |
| |
| <li> <a href="/2016/06/27/weekly-update.html">Apache Kudu (incubating) Weekly Update June 27, 2016</a> </li> |
| |
| <li> <a href="/2016/06/24/multi-master-1-0-0.html">Master fault tolerance in Kudu 1.0</a> </li> |
| |
| <li> <a href="/2016/06/21/weekly-update.html">Apache Kudu (incubating) Weekly Update June 21, 2016</a> </li> |
| |
| <li> <a href="/2016/06/17/raft-consensus-single-node.html">Using Raft Consensus on a Single Node</a> </li> |
| |
| <li> <a href="/2016/06/13/weekly-update.html">Apache Kudu (incubating) Weekly Update June 13, 2016</a> </li> |
| |
| <li> <a href="/2016/06/10/apache-kudu-0-9-0-released.html">Apache Kudu (incubating) 0.9.0 released</a> </li> |
| |
| <li> <a href="/2016/06/06/weekly-update.html">Apache Kudu (incubating) Weekly Update June 6, 2016</a> </li> |
| |
| <li> <a href="/2016/06/02/no-default-partitioning.html">Default Partitioning Changes Coming in Kudu 0.9</a> </li> |
| |
| <li> <a href="/2016/06/01/weekly-update.html">Apache Kudu (incubating) Weekly Update June 1, 2016</a> </li> |
| |
| <li> <a href="/2016/05/23/weekly-update.html">Apache Kudu (incubating) Weekly Update May 23, 2016</a> </li> |
| |
| <li> <a href="/2016/05/16/weekly-update.html">Apache Kudu (incubating) Weekly Update May 16, 2016</a> </li> |
| |
| <li> <a href="/2016/05/09/weekly-update.html">Apache Kudu (incubating) Weekly Update May 9, 2016</a> </li> |
| |
| <li> <a href="/2016/05/03/weekly-update.html">Apache Kudu (incubating) Weekly Update May 3, 2016</a> </li> |
| |
| </ul> |
| </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 © 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="/js/bootstrap.js"></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> |
| |