[CALCITE-1251] Release notes for Apache Calcite Avatica 1.8.0
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/10e8c79c Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/10e8c79c Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/10e8c79c Branch: refs/heads/branch-avatica-1.8 Commit: 10e8c79c63ade367d8354596d23d78945a3100ed Parents: 4c89dce Author: Josh Elser <[email protected]> Authored: Fri May 20 15:40:01 2016 -0400 Committer: Josh Elser <[email protected]> Committed: Fri May 20 15:40:01 2016 -0400 ---------------------------------------------------------------------- avatica/site/_docs/history.md | 63 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/10e8c79c/avatica/site/_docs/history.md ---------------------------------------------------------------------- diff --git a/avatica/site/_docs/history.md b/avatica/site/_docs/history.md index ae7bd64..1661929 100644 --- a/avatica/site/_docs/history.md +++ b/avatica/site/_docs/history.md @@ -28,6 +28,69 @@ For a full list of releases, see Downloads are available on the [downloads page]({{ site.baseurl }}/downloads/). +## <a href="https://github.com/apache/calcite/releases/tag/calcite-avatica-1.8.0">1.8.0</a> / 2016-05-20 +{: #v1-8-0} + +Apache Calcite Avatica 1.8.0 continues the focus on compatibility with previous +versions while also adding support for authentication between Avatica client and server. +Performance, notably on the write-path, is also major area of improvement +in this release, increasing as much as two to three times over previous versions +with the addition of new API support. The documentation for both users and developers +continues to receive improvements. + +Authentication is a major theme of this release, providing multiple layers of +additional authentication mechanisms over previous versions. In these earlier +versions, the only authentication provided by Avatica was achieved via the JDBC URL's +standard user and password options. These have always been passed directly into +the backend database's authentication system, but not all databases provide username +and password based authentication systems. [CALCITE-1173](https://issues.apache.org/jira/browse/CALCITE-1173) +adds Avatica-level authentication over [HTTP Basic](https://en.wikipedia.org/wiki/Basic_access_authentication) +and [HTTP Digest](https://en.wikipedia.org/wiki/Digest_access_authentication) +authentication mechanisms. These are provided specifically for the case when +Avatica is used with a database that _does not already_ provide its own authentication +implementation. + +Some systems rely on [Kerberos](http://web.mit.edu/kerberos/) for strong, centrally- +managed authentication. [CALCITE-1159](https://issues.apache.org/jira/browse/CALCITE-1159) +introduces Kerberos-based authentication for clients via [SPNEGO](https://en.wikipedia.org/wiki/SPNEGO). +The Avatica server can be configured to only allow clients with a valid Kerberos ticket, +optionally, also passing this information to the backend database to implement +basic "impersonation" (where the Avatica server issues requests on behalf of the end user). + +Building on top of the work done in Avatica-1.7.0 in [CALCITE-1091](https://issues.apache.org/jira/browse/CALCITE-1091), +this release also contains [CALCITE-1128](https://issues.apache.org/jira/browse/CALCITE-1128) which +implements the batch-oriented JDBC APIs on `Statement`. Through careful inspection, it +was observed that the overall performance of Avatica clients in 100% write workloads was +dominated by the cost of the HTTP calls. By leveraging the `Statement#addBatch()` +and `Statement#executeBatch()` API calls, clients can efficiently batch multiple updates +in a single HTTP call. In testing this over the previous single HTTP call per update with +[Apache Phoenix](https://phoenix.apache.org), it was observed that performance increased by +two to three times, bringing Avatica's performance on par with the Phoenix "native" driver. + +Returning back to compatibility, a new component appears in this release which is designed to +test versions of Avatica against each other. [CALCITE-1190](https://issues.apache.org/jira/browse/CALCITE-1190) +introduces a "Technology Compatibility Kit" (TCK) which automates the testing of one version +of Avatica against other versions. To further ease this testing, a runnable JAR to launch +an HSQLDB instance and an Avatica server also makes it debut with these changes. This TCK +makes it much easier to run tests of newer clients against older servers and vice versa. +Validating the backwards compatibility that is being built is extremely important to be +confident in the guarantees being provided to users. + +Finally, a number of bugs are also fixed in the Protocol Buffer wire API. Some of these +include [CALCITE-1113](https://issues.apache.org/jira/browse/CALCITE-1113) and +[CALCITE-1103](https://issues.apache.org/jira/browse/CALCITE-1103) which fix how certain +numbers are serialized, [CALITE-1243](https://issues.apache.org/jira/browse/CALCITE-1243) +which corrects some fields in Protocol Buffer messages which were incorrectly marked +as unsigned integers instead of signed integers, and [CALCITE-1209](https://issues.apache.org/jira/browse/CALCITE-1209) +which removes incorrect parsing of binary fields as Base64-encoded strings. All of +these issues are fixed in a backwards-compatible manner and should have no additional negative +impact on older clients (older clients will not break, but they may continue to return +incorrect data for certain numbers). + +For users of the Avatica driver, a new [client reference page]({{ base_url }}/avatica/docs/client_reference.html) +is added which details the options that are available in the Avatica JDBC Driver's URL. +The wire API documentation for Protocol Buffers continues to receive updates as the API continues to evolve. + ## <a href="https://github.com/apache/calcite/releases/tag/calcite-avatica-1.7.1">1.7.1</a> / 2016-03-18 {: #v1-7-1}
