What's New in Apache Kudu

This topic lists new features for Apache Kudu in this release of Cloudera Runtime.

RaftConsensus::DumpStatusHtml() does not block Raft consensus activity

kudu::consensus::RaftConsensus::CheckLeadershipAndBindTerm() needs to take the lock to check the term and the Raft role. When many RPCs come in for the same tablet, the contention can hog service threads and cause queue overflows on busy systems. With this improvement, RaftConsensus::DumpStatusHtml() no longer blocks Raft consensus activity and is not blocked by it either.

Adding --ignore_nonexistent for 'local_replica delete'

--ignore_nonexistent flag was added for the 'local_replica delete' tool. This makes the real-world scripting scenarios easier if trying to clean up tablet servers of particular tablet replicas.

Multiple tablet ids in 'local_replica delete'

The 'local_replica delete' tool allows multiple tablet identifiers to be specified and processed at once. This helps to reduce the overall latency caused by that opening tablet server’s metadata takes significant time.

Avoid an epoll cycle when data can be sent immediately

If the transfer queue was empty prior to a transfer is enqueued, immediate writing is attempted. If that attemp fails to fully write, epoll watching is enabled.

Avoid calling Schema::find_column() once per RowBlock in columnar serialization

When a row block is being serialized in the columnar format the projection calculation happens once per Scan RPC and per-rowblock calls.