You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kudu.apache.org by Grant Henke <gr...@apache.org> on 2021/01/28 22:47:47 UTC
[ANNOUNCE] Apache Kudu 1.14.0 Released
The Apache Kudu team is happy to announce the release of Kudu 1.14.0!
Kudu is an open source storage engine for structured data which supports
low-latency random access together with efficient analytical access
patterns. It is designed within the context of the Apache Hadoop ecosystem
and supports many integrations with other data analytics projects both
inside and outside of the Apache Software Foundation.
The new release adds several new features and improvements, including the
following:
- Full support for `INSERT_IGNORE`, `UPDATE_IGNORE`, and `DELETE_IGNORE`
operations
was added. The `INSERT_IGNORE` operation will insert a row if one
matching the key
does not exist and ignore the operation if one already exists. The
`UPDATE_IGNORE`
operation will update the row if one matching the key exists and ignore
the operation
if one does not exist. The `DELETE_IGNORE` operation will delete the row
if one matching
the key exists and ignore the operation if one does not exist. These
operations are
particularly useful in situations where retries or duplicate operations
could occur and
you do not want to handle the errors that could result manually or you do
not want to cause
unnecessary writes and compaction work as a result of using the `UPSERT`
operation.
The Java client can check if the cluster it is communicating with
supports these operations
by calling the `supportsIgnoreOperations()` method on the KuduClient.
- Spark 3 compatible JARs compiled for Scala 2.12 are now published for the
Kudu Spark integration.
- Every Kudu cluster now has an automatically generated cluster Id that can
be used to uniquely
identify a cluster. The cluster Id is shown in the masters web-UI, the
`kudu master list` tool,
and in master server logs.
- Downloading the WAL data and data blocks when copying tablets to another
tablet server is now
parallelized, resulting in much faster tablet copy operations. These
operations occur when
recovering from a down tablet server or when running the cluster
rebalancer.
- The HMS integration now supports multiple Kudu clusters associated with a
single HMS
including Kudu clusters that do not have HMS synchronization enabled.
This is possible,
because the Kudu master will now leverage the cluster Id to ignore
notifications from
tables in a different cluster. Additionally, the HMS plugin will check if
the Kudu cluster
associated with a table has HMS synchronization enabled.
- DeltaMemStores will now be flushed as long as any DMS in a tablet is
older than the point
defined by `--flush_threshold_secs`, rather than flushing once every
`--flush_threshold_secs`
period. This can reduce memory pressure under update- or delete-heavy
workloads, and lower tablet
server restart times following such workloads.
The above is just a list of the highlights, for a more complete list of new
features, improvements and fixes please refer to the release notes:
https://kudu.apache.org/releases/1.14.0/docs/release_notes.html
The Apache Kudu project only publishes source code releases. To build Kudu
1.14.0, follow these steps:
- Download the Kudu 1.14.0 source release:
https://kudu.apache.org/releases/1.14.0
- Follow the instructions in the documentation to build Kudu 1.14.0 from
source:
https://kudu.apache.org/releases/1.14.0/docs/installation.html#build_from_source
For your convenience, binary JAR files for the Kudu Java client library,
Spark
DataSource, Flume sink, and other Java integrations are published to the ASF
Maven repository and are now available:
https://search.maven.org/search?q=g:org.apache.kudu%20AND%20v:1.14.0
The Python client source is also available on PyPI:
https://pypi.org/project/kudu-python/
Additionally, experimental Docker images are published to Docker Hub:
(https://hub.docker.com/r/apache/kudu), including for AArch64-based
architectures (ARM).
Regards,
The Apache Kudu Team