New in InterSystems IRIS 2021.2
This page describes the new and enhanced features in the 2021.2 release of InterSystems IRIS®, which is a Continuous Delivery (CD) release. This is the first CD release to be available on server platforms, in addition to an OCCI-compliant container format.
Enhancing Developer Experience
Interoperability Productions in Python
In this release, you can develop interoperability productions in Python using the Production EXtension (PEX) framework. This gives you the choice of developing productions in Python, Java, .NET, or ObjectScript. You can easily combine production components developed in different languages. You can develop in the language you are familiar with even if the other production components were developed in a different language. You can use Python with PEX to create new protocol adapter, perform complex analysis or calculations, and to create persistent messaging and long-running business processes. For more information, see Developing Production Components with External Languages.
Visual Studio Code ObjectScript Extension Pack Updates
The Visual Studio Code ObjectScript Extension Pack is available from the Visual Studio Code download pageOpens in a new tab and has the following enhancements that make developing code faster and easier:
-
Integrated documentation — hover-over in-line documentation, browse class hierarchies, and preview custom class documentation.
-
Server-side source improvements — search and support for many client-side web application workflows.
-
Debugging — inspect properties of objects and improved reliability.
The extension pack includes the ObjectScript extension and the Language Server extension. For more information, see the VSCode ObjectScript Extension documentationOpens in a new tab.
Make SQL Queries With Minimal Code in Interoperability Productions
In this release, new SQL business services and operations make it easy to perform SQL queries in a production. See Using SQL Business Services and Operations for details.
Enhancing Analytics and AI
SQL Loader
The SQL LOAD DATA command loads data from a CSV file or JDBC source into an SQL table efficiently. This allows you to easily populate a table with well-validated data. You can refine the command with COLUMNS and VALUES clauses similar to an INSERT statement and override default behavior with the USING clause, similar to how it’s used in IntegratedML. For details see LOAD DATA in the SQL Reference.
Adaptive Analytics Enhancements
In this release, Adaptive Analytics added two additional features:
-
Validation of InterSystems Reports as a client of Adaptive Analytics — now our customers can provide reports using InterSystems Reports with the same data model that is shared with PowerBI, Tableau and other Business Intelligence tools.
-
Import of InterSystems IRIS Business Intelligence (BI) cubes — we have the ability to export an InterSystems IRIS BI cube definition and import it as a virtual cube in Adaptive Analytics. Please note that there are caveats with this – some things cannot be exported from a cube such as Cube Relationships and cubes based on data connectors – see the Adaptive Analytics documentation for more information.
Enhancing Cloud and Operations
Cloud Connectors
This release contains cloud connectors that make it easier for you to manage InterSystems IRIS applications in Amazon Web Services and use connectors to access services. This release has the following adapters:
-
Inbound and outbound adapters for S3 (Amazon Simple Storage Service)
-
Outbound adapter for Cloudwatch (Amazon monitoring service)
-
Outbound adapter for SNS (Amazon Simple Notification Service) for messaging
IKO Enhancements
This release makes it easier to deploy and manage InterSystems IRIS in Kubernetes with the following new InterSystem Kubernetes Operator (IKO) features:
-
IKO can deploy and manage InterSystems System Alert and Monitoring (SAM) and the InterSystems API Manager (IAM) with your InterSystems IRIS cluster. This makes it easier to administer and scale your system.
-
IKO can deploy locked down InterSystems IRIS and InterSystems Web Gateway containers.
-
IKO can deploy InterSystems Web Gateway containers with Nginx as well as Apache web servers.
-
IKO can include ephemeral as well as persistent volumes in deployments.
Enhancing Speed, Scale, and Security
Online Shard Rebalancing
InterSystems IRIS Sharding distributes data and its associated workload across multiple nodes. Even data distributions offer near linear scalability for analytical query workloads. Therefore, if the data volume or workload increases, you may add additional data nodes to meet your performance goals. After adding a data node, a rebalancing operation can be used to re-distribute the older data across all available nodes, which enhances the elasticity of sharded clusters. Starting in this release, this rebalancing happens online: users can continue to query and update the data while rebalancing is running.
Adaptive SQL Optimizer
The InterSystems IRIS SQL Optimizer leverages table statistics to derive the best query plan for each user-submitted statement and uses an efficient query cache to reuse the generated code. When those statements include parameters, the values submitted at runtime may provide opportunities for faster execution using an alternative query plan. The new Runtime Plan Choice (RTPC) infrastructure introduced with this release ensures InterSystems IRIS SQL takes advantage of such opportunities efficiently. RTPC scans for the use of outlier values and efficiently estimates the selectivity of range conditions based on more detailed table statistics. This leads to more adaptive query planning and significant savings in execution time and I/O for many real-world datasets.
In addition, InterSystems IRIS now uses block-level sampling rather than full or row-based scanning to gather the table statistics used by the optimizer. This efficient algorithm enables gathering statistics (such as by using the TUNE TABLE command) for even the largest tables with billions of rows within seconds. Also, InterSystems IRIS SQL will now gather table statistics on-the-fly when a table has none to ensure appropriate query plans.
Saving on Storage
In this release, stream and journal compression can significantly reduce storage needed for your InterSystems IRIS deployment:
-
Stream compression – is now on by default for all globals-based stream classes, with no application change required. Existing data remains readable and will be compressed upon the next write. Experiments with real-world data have indicated compression ratios ranging from 30% for short texts to 80% and more for XML and other document types.
-
Journal compression — compresses inactive journal files immediately after journal switch. Rollback and roll forward are executed directly from the compressed format. This significantly reduces the storage requirements for this vital part of InterSystems IRIS data integrity strategy. See Journaling Best Practices for more information.
TLS 1.3 Support (OpenSSL 1.1.1)
With this version, InterSystems IRIS includes support for OpenSSL 1.1.1 and fully supports TLS 1.3. With TLS 1.3 users will see faster performance among other improvements, such as cutting the encryptions latency in half. This is accomplished by eliminating an entire round trip from the handshake process.
Beginning with InterSystems IRIS 2021.2 we will no longer ship OpenSSL libraries on UNIX but depend on the OS to provide those. One benefit of this change is that updates to the OpenSSL library no longer requires a new installation of InterSystems IRIS but can be performed with the usual OS updates. For more information on this new approach, see Relationship of TLS Version to Operating System and Its Version. Because InterSystems products require access to the OS provided OpenSSL library, the product will now perform a check during the installation and the startup of an instance. The call can also be manually invoked. See Installing the Required Dependencies for details.
The change to not ship OpenSSL libraries also triggered an adjustment we needed to make for kits. Every kit is specific to a major version of OpenSSL (OpenSSL 1.1.1 is the major version, minor versions are indicated by a letter following the major version, such as OpenSSL 1.1.1f).
On Windows, the kit does install the OpenSSL library.
If the correct version of OpenSSL is not installed on your UNIX system, the installation will not succeed. You must install OpenSSL and then reinstall InterSystems IRIS. For example, on MacOS, you can install OpenSSL using Homebrew, see https://formulae.brew.sh/formula/openssl@1.1Opens in a new tab.
New ^TRACE Utility
This release introduces a new tool for tracing raw events from one or more processes. Existing utilities such as %SYS.MONLBL and PERFMON track mostly the same event types but immediately generate a report formatted for a specific type of analysis. The new ^TRACE tool captures these events in a more generic file format and allows interactive navigation and summarization of the captured information through a command-line interface or API. Supported event types include, but are not limited to global sets and kills, physical writes, network requests, cache hits and reads, and various journal events. Information captured for these events includes the routine line and call stack, as well as the full global reference where applicable. This offers a single interface for a broader set of performance analysis tasks.
Other Enhancements and Efficiency Improvements
In each release, InterSystems makes many efficiency improvements and minor enhancements. This release includes:
-
Compact double support for external clients, including JDBC, .NET clients, Python, and IRISNative.
-
In this release, the security tables now have an embedded version number, which allows finer access over allowable imports. You can export security tables from version 2021.1 and then import them to this version. For details, see ^SECURITY.
-
This release updates the Log4j library to version 2.17.0.
-
This release updates the node.js library to version 14.