What's New in Apache Kudu

Learn about the new features of Kudu in Cloudera Runtime 7.1.8.

Custom hash schemas

Previously once the partition schema was set the number of hash buckets per range partition could not be changed. For the newly added range partitions the number of hash buckets was tied to the amount that was initialized in the partition schema. The custom hash schemas feature enables you to vary the number of hash buckets per range partition, both at table creation and alteration time.

For more information, see Managing Kudu tables with range-specific hash schemas

Support native encryption at rest

Kudu now supports data encryption at rest, using File Key, Server Key and Cluster Key for encryption. However, data at rest encryption is supported only on fresh installation and once it is enabled you cannot disable it.

For more information, see Configuring data at rest encryption

Add tool to unregister a tablet server

Add a 'kudu tserver unregister' tool to unregister a tserver from the master. This tool can be used to decommission a tserver without restarting masters. This tool unregisters the dead tserver from the master's in-memory map and removes its persisted state from the catalog table by default. It's also possible to unregister a tserver which is not presumed dead by adding -force_unregister_live_tserver, or keep tserver's persisted state by adding -remove_tserver_state=false.

Optimizations and improvements

KUDU-2181: Multi master configuration support

Adding a new Kudu master instance to your cluster, for example to migrate to a multiple master configuration, is automated and does not require you to restart the already existing masters.

KUDU-2623 Expose table as public in WriteOp
Making KuduWriteOperation::table() method public to enable identification of the problematic table when an error happens.
KUDU-3197 tserver optimal Schema's memory used, using std::shared_ptr
Change TabletMeta's variable Schema* to std::shared_ptr<Schema> to reduce memory used when altering schema.
KUDU-3328: Make rebalancer tool take into account maintenance mode
Before this fix kudu master would not assign new replicas on maintenance tservers but replicas could still be moved through the rebalancer tool. This patch improves the rebalancer tool's behavior. If maintenance tservers are not specified in 'ignored_tservers' and users do not specify '-force_rebalance_replicas_on_maintenance_tservers' neither, the rebalancer tool cannot get replica moves and return IllegalState.
KUDU-3340 Disable compaction on the specified table
For tables with only inserts but no updates, we can disable the compaction of the table's data, which can improve the search efficiency (the effect is more obvious in the search scenario involving multiple tables).
KUDU-3341: Stop retrying to DeleteTablet on wrong server
This patch improves catalog_manager's behavior when delete tablet with a 'WRONG_SERVER_UUID' error. This RetryTask is marked failed instead of getting retried in order to avoid too many requests.