What's New in Apache Kudu
Learn about the new features of Kudu in Cloudera Runtime 7.2.17.
- Auto-leader rebalancing
- An experimental feature is added to Kudu that allows it to automatically rebalance
tablet leader replicas among tablet servers. The background task can be enabled by setting
--auto_leader_rebalancing_enabledflag on the Kudu masters (see, KUDU-3390).
- Immutable column
- Introduced immutable column. It is useful to define such a column which represents a semantically constant entity (see, KUDU-3353).
- Auto-incrementing column
- Introduced auto-incrementing column. These columns are populated on the server side with a monotonically increasing counter. The counter is local to every tablet; for example, each tablet has a separate auto incrementing counter.
- Kudu now supports experimental non-unique primary key. When a table with non-unique
primary key is created, an auto-incrementing column named
auto_incrementing_idwill be added automatically to the table as the key column. The non-unique key columns and the auto-incrementing column together form the effective primary key (see, KUDU-1945). For more details, see Non-unique primary key index.
- Kudu JWT support and proxy support
- JWT authentication is an alternative to Kerberos authentication, and you can use it in situations where Kerberos authentication is not a viable option but authentication is required nevertheless. For more details, see Configuring JWT authentication for Kudu.
- It is now possible to separate the internal and the external traffic in a Kudu cluster while providing the connectivity for Kudu clients running in external networks where the internal traffic is never routed through a proxy's or a loadbalancer's endpoint. Essentially, it allows for the internal traffic (for example, the traffic between tablet servers and masters) to bypass advertised RPC addresses, using alternative addresses for inter-cluster communications. For more details, see Proxied RPCs in Kudu.
- Added sanity check to detect wall clock jumps
- Added a sanity check to detect strange jumps in wall clock readings. The idea is to rely
on the readings from the CLOCK_MONOTONIC_RAW clock captured along with the wall clock
readings. A jump should manifest itself in a big difference between the wall clock delta
and the corresponding CLOCK_MONOTONIC_RAW delta. If such a condition is detected, then
HybridClock::NowWithErrorUnlocked()dumps diagnostic information about clock NTP synchronisation status and returns
Status::ServiceUnavailable()with appropriate error message.
- As a part of this changelist, the following new flags are introduced:
This is to control the newly introduced sanity check for readings of the wall clock. Acceptable values are
disabled. It is set to
autoby default, which means that the sanity check for timestamps is enabled if the process detects that it is running on a VM in Azure cloud.
This is to control the threshold (in seconds) for the difference in deltas of the wall clock's and CLOCK_MONOTONIC_RAW clock's readings. It is set to 900 (15 minutes) by default.