What’s new in Kognitio 8.2?

The current version of Kognitio is 8.2.1. The latest release is 80200rel20180531. In this article we cover:

New features

The following new features have been added since version 8.1.0:

  • Dedicated system ramstores

    The SYS schema is now serviced by a separate, dedicated set of ramstores. Images of objects in the SYS schema are automatically placed in these sys ramstores. This provides improved compile times and fast management queries when the server is under heavy load. Learn more

  • Asymmetric query processing

    Instead of running every query plan step on every ramstore, Kognitio’s new asymmetric query processing feature sizes each step based on concurrency and the estimated work required by the step. Kognitio will assign each step to an appropriate number of ramstores. This greatly increases throughput when Kognitio is running a very large number of relatively quick queries. Learn more

  • Location hash value enhancement

    The Location Hash Value (LHV) feature has been extended to work with multiple LHV values per access step and the compiler has been tuned to use this properly use this feature when gathering statistics for estimates. This allows the LHV feature to work in cases where it previously didn’t, including queries which do joins and queries where the LHV values are obtained from values that come out of another table at runtime. See the article on Location Hash Values for details.

  • Kerberos (Active Directory) authentication

    It is now possible to authenticate using Active Directory / Kerberos, or potentially other mechanisms supported by the GSS API. Building on top of this capability allows users to be auto-created, and permissions assigned based on Active Directory group membership.

    An already-existing Kognitio user can be associated with a principal name (a Kerberos term referring to someone’s identity – effectively a Kerberos username).

    In addition, an Active Directory group can be associated with a Kognitio group so that they are considered equivalent, by creating an external group mapping.

    Finally, an external group mapping can be configured such that a new user can authenticate with a principal name and connect to Kognitio without specifying a Kognitio username, and the principal’s membership of an associated Active Directory group will cause the Kognitio username to be automatically created and associated with the principal concerned.

    For more details see the article on Kerberos Authentication

  • JSON loading

    Kognitio now supports the parsing of data in JSON format. Data in JSON format can be converted into a tabular format that can be represented in Kognitio and accessed via SQL. JSON loading can be done as part of a data load so be defined in the target string of an external table. Learn more.

  • Password reset for expired users

    It is now possible for a user to reset an expired password by connecting to the server using Kognitio console, authenticating with the expired password and specifying a new one.

    This feature is off by default and needs to be enabled by the SYS user by setting the global am_pwd_policy parameter to 0.

  • Transaction mode functionality extension

    The transaction mode behavior clause (‘AT <at-mode>’ at the end of a query) has been extended to allow extra functionality. See the AT modes section for more information.

  • Check on parity recreate

    Setting the parameter parity_c_write to 1 checks parity writes against original contents read first and only does the write if there is a difference. Also, log differences to serverdbg. Parameter defaults to 0 (off).

  • Full GEOS library implemented

    An extended set of geographic functions from the GEOS library is now provided via the ‘fullgeometry’ module. This module is shipped with the standard install but needs activating in order to for the functions to be made available.

Changes in behavior

This section outlines the changes in behavior in Kognitio version 8.2.0 when compared with the previous standalone release: Kognitio version 8.1.0:

  • Tables and views can no longer be created in the SYS schema, which is now intended to be used only for system tables, related objects and small, frequently referenced user tables like process control, status or summary tables. The sys_objects parameter can be set to 1 or 2 to allow the creation of objects in the SYS schema. See the System Ramstores section for further details.

  • Previously Kognitio used to allow queries of the format (WITH X AS ...) but this is no longer the case as it violates the ANSI SQL standard for the WITH clause. See the SELECT statement for the correct syntax.

  • The default percentage of RAM store memory for PMAs (i.e. user table and view images) has increased from 70% to 85%, due to improvements in memory handling.

  • Security classes used to bypass the check on number of login failures if SYS.IPE_ALLLOGIN was not in RAM. Now they give an error for connection attempts for users in such security classes if SYS.IPE_ALLLOGIN is not in RAM. So if using this sort of security class, ensure SYS.IPE_ALLLOGIN is put into RAM at some point during system restarts (e.g. in an imaging script).

  • Privilege changes

    GRANT ALL PRIVILEGES ON TABLE now grants every privilege rather than the subset of privileges that happened to be in ASI SQL92 standard. Setting the ci_legacyprivs parameter to 1 keeps the old behavior – those same privileges can also be granted with GRANT BASIC PRIVILEGES ON TABLE.

    GRANT ... ON EVERY [TABLE|SCHEMA|USER|...] IN [SYSTEM|SCHEMA ...] TO ... is improved syntax for granting aggregate privileges.

  • Spider joins are now turned off by default – they can be enabled by setting ci_nospider parameter to 0. These have been replaced with improved compile-time optimization which does the job better.

  • Larger SYS and LOG slabs by default when recommissioning – new default is 1% of disk resources.

  • Faster rollback on startup – rollback of incomplete transactions can complete whilst users are allowed onto the system; locking prevents users accessing objects which are being rolled back, but allows querying on unrelated objects to take place much sooner.

  • View images are now created according to dependencies during a create image, making the old ci_allow_revviid parameter obsolete.

  • The old periodic trigger mechanism is now deprecated – this functionality became irrelevant many years ago.

  • The HDFS connector inside the HADOOP module defaults to 64-bit now. So any existing systems which rely on the default being 32-bit will need to specifically set the bitness attribute in the target string of the connector (this can be done prior to upgrading).

  • Autocommit is now a server-side operation if you use an up-to-date ODBC driver. SELECT queries run with server-side autocommit will run using ‘AT NOW’ by default, meaning they will be point in time queries that don’t require locks on user-level objects. This allows tables to be queried while they are being modified.

  • The JDBC bridge has been replaced by a JDBC driver. This can be downloaded from the main Kognitio downloads page and the latest documentation is available on the PDF reference sheet.

Upgrade instructions

This version can only be upgraded from Kognitio version 8.1.0 or the pre-release of Kognitio on Hadoop version 8.1.50.

If you are upgrading from a version earlier than 8.1.0, you will need to read the release notes for that release, and take the steps indicated to upgrade to 8.1.0 first.