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:
Note that Avatica's Maven coordinates have changed. The
groupId is now “org.apache.calcite.avatica” (previously “org.apache.calcite”), and
artifactIds are “avatica”, “avatica-metrics”, “avatica-metrics-dropwizardmetrics3”, “avatica-noop-driver”, “avatica-server” (previously “calcite-avatica”, etc.). Make sure to update these when upgrading to this version.