Apache Calcite’s PMC has just released Avatica 1.7.1, the first release of Avatica as an independent project. We’re excited because it makes Avatica easier to use, and allows us to be more agile in our release schedule.
(Avatica was previously released as part of Calcite. Avatica is still governed by Apache Calcite’s PMC, and stored in the same git repository as Calcite, but releases are no longer synchronized, and Avatica does not depend on any Calcite modules.)
A significant portion of the work of this release was “Maven work” to separate the build and release processes, but there were several important bug fixes, including a security fix for Jetty (see below).
Performance, specifically on the write path, was a big focus in this release. [CALCITE-1091] contained a number of important changes. Some of these changes (e.g. [CALCITE-1092] and [CALCITE-1093]) were related to heap usage in the Avatica server, while [CALCITE-1094] and [CALCITE-1117] were strictly performance-related.
The latter improved performance the most. Switching to the Apache Commons HttpComponents Client library instead of using the Java platform’s built-in HttpURLConnection, we noticed a 15% improvement in pure write workloads.
Three dependent library upgrades:
- We completely removed Commons Logging in favor of SLF4J in [CALCITE-669]. This logging framework update will allow downstream integrators to use the logging implementation of their choice instead of being forced to inherit Commons Logging.
- We upgraded Jackson from 2.1.1 to 2.6.3 in [CALCITE-1021].
- We upgraded Jetty from 9.2.7.v20150116 to 9.2.15.v20160210 in [CALCITE-1156] to fix a security issue.
Note that Avatica’s Maven coordinates have changed. The
now “org.apache.calcite.avatica” (previously “org.apache.calcite”),
(previously “calcite-avatica”, etc.). Make sure to update these when
upgrading to this version.