Welcome to the eighteenth edition of the Kudu Weekly Update. This weekly blog post covers ongoing development and news in the Apache Kudu project.
- Kudu has graduated from the Apache Incubator and is now a Top-Level Project! All the details are in this blog post. Mike Percy and Todd Lipcon made a few updates to the website to reflect the project’s new name and status.
Development discussions and code in progress
Dan Burkert contributed a few patches that repackage the Java client under
org.apache.kuduin place of
org.kududb. This was done in a backward-incompatible way, meaning that import statements will have to be modified in existing Java code to compile against a newer Kudu JAR version (from 0.10.0 onward). This stems from a discussion initiated in May. It won’t have an impact on C++ or Python users, and it isn’t affecting wire compatibility.
Still on the Java-side, J-D Cryans pushed a patch that completely changes how Exceptions are managed. Before this change, users had to introspect generic Exception objects, making it a guessing game and discouraging good error handling. Now, the synchronous client’s methods throw
KuduExceptionwhich packages a
Statusobject that can be interrogated. This is very similar to how the C++ API works.
Existing code that uses the new Kudu JAR should still compile since this change replaces generic
Exceptionwith a more specific
KuduException. Error handling done by string-matching the exception messages should now use the provided
Alexey Serbin’s patch that adds Doxygen-based documentation was pushed and the new API documentation for C++ developers will be available with the next release.
Todd has made many improvements to the
kscktool over the last week. Building upon Will Berkeley’s WIP patch for KUDU-1516,
ksckcan now detect more problematic situations like if a tablet doesn’t have a majority of replicas on live tablet servers, or if those replicas aren’t in a good state.
ksckis also now faster when run against a large cluster with a lot of tablets, among other improvements.
As mentioned last week, Dan has been working on adding add/remove range partition support in the C++ client and in the master. The patch has been through many rounds of review and testing and it’s getting close to completion. Meanwhile, J-D started looking at adding support for this functionality in the Java client.
Want to learn more about a specific topic from this blog post? Shoot an email to the kudu-user mailing list or tweet at @ApacheKudu. Similarly, if you’re aware of some Kudu news we missed, let us know so we can cover it in a future post.