InterSystems IRIS 2020.1 Release

InterSystems IRIS 2020.1 Release

At the end of March was released the new version of the InterSystems IRIS data platform 2020.1. Even the coronavirus pandemic did not prevent the release.

Key features in the new release include improved core performance, generation of REST applications according to the OpenAPI 2.0 specification, sharding for objects, a new type of Management Portal, MQTT support, a universal query cache, and a new framework for creating product elements in Java or .NET. A complete list of changes and the Upgrade Checklist in English can be found at this link. More details below.

InterSystems IRIS 2020.1 is a release with extended support. InterSystems releases two types of InterSystems IRIS releases:

  • Continuous delivery releases. They are released three to four times a year as Docker images. These are intended for application development and deployment in cloud or Docker container environments.
  • Extended support releases. They are released less frequently, but corrections are released for them. They are available on all platforms supported by InterSystems IRIS.

Between the extended support releases 2019.1 and 2020.1, only Docker image releases were made — 2019.2, 2019.3, 2019.4. All new features and fixes from these releases are included in 2020.1. Some capabilities listed below first appeared in one of the releases 2019.2, 2019.3, 2019.4.

So.

Developing REST applications according to the specification

In addition to InterSystems API Manager, supported since version 2019.1.1, the 2020.1 release introduces the ability to generate a code skeleton for a REST service according to the specification in OpenAPI 2.0 format. For more details, see the documentation section “Creating REST Services».

Converting a Caché or Ensemble installation

This release allows you to convert a Caché or Ensemble installation to InterSystems IRIS during installation. The conversion itself may require changes to code, settings, or other scripts, but in most cases will be straightforward.

Before conversion, read the InterSystems IRIS In-Place Conversion Guide and the InterSystems IRIS Adoption Guide. These documents are available on the InterSystems global support site in the section “Documents».

Client languages

InterSystems IRIS Native API for Python

Low-level fast access from Python to multidimensional arrays where InterSystems IRIS stores data. For more details — “Native API for Python».

InterSystems IRIS Native API для Node.js

Low-level fast access from Node.js to multidimensional arrays where InterSystems IRIS stores data. For more details — “Native API for Node.js».

Реляционный доступ для Node.js

Поддержка ODBC-доступа к InterSystems IRIS для разработчиков на Node.js

Bidirectional communication in Java and .NET gateways

The .NET and Java gateways now support bidirectional connections. This means that a program in .NET or Java invoked from IRIS through the gateway uses the same connection to communicate with IRIS. Learn more — “Java Gateway Reentrancy».

Improvements in Native API for Java and .NET

IRIS Native API for Java and .NET supports $LIST lists and parameter passing by reference.

New Look for the Management Portal

This release includes initial changes to the Management Portal. They currently concern only the appearance and do not affect functionality.

SQL

  • Universal query cache. Starting from 2020.1, all queries, including embedded queries and class queries, will be stored as cached queries. Previously, using embedded queries required recompiling the program to generate new query code, for instance, if a new index was created or table statistics changed. Now, all query plans are stored in a single cache and cleared independently of the program in which the query is used.

  • A larger number of query types are now parallelized, including DML queries.

  • Queries to sharded tables can now use implicit join "->".

  • Queries executed from the Management Portal will now run in a background process. Long-running queries will no longer fail due to web page timeout. Extended queries can now be canceled.

Integration capabilities

New framework for creating product elements in Java or .NET

This release includes a new framework PEX (Production EXtension), providing additional language options for implementing product components. In this release, PEX supports Java and .NET for developing business services, business processes, and business operations, as well as for inbound and outbound adapters. Previously, only business services and business operations could be created, requiring the code generator to be invoked in the Management Portal. The PEX framework offers more flexible means of integrating Java and .NET code into product components, often without programming in ObjectScript. The PEX package includes the following classes:

Learn more — “PEX: Developing Productions with Java and .NET».

Monitoring port usage in productions.

The Port Authority utility monitors the ports used by business services and operations. It helps identify available ports and reserve them. More details — «Managing Port Usage».

Adapters for MQTT

This release includes adapters that support the MQTT (Message Queuing Telemetry Transport) protocol, which is commonly used in Internet of Things (IoT) applications. More details — «Using MQTT Adapters in Productions».

Sharding

Simplified Architecture

This release introduces a more straightforward way to create clusters — based on individual servers (node level), rather than regions, as in previous versions. The new API — %SYSTEM.Cluster. The new approach is compatible with the old one — a cluster based on regions (namespace level) — and does not require changes to existing installations. More details — «Elements of Sharding" and "Sharding APIs».

Other improvements in sharding:

  • You can now co-shard (distribute frequently connected parts of two tables across the same shards) any two tables. Previously, this was only possible with tables that had a common shard key. Starting from this release, the COSHARD WITH syntax applies to tables with a system Id as well. More details — «Create the Tables" and "Defining a Sharded Table».
  • Previously, marking a table as sharded could only be done via DDL; now this can also be done in the class description — using the new keyword Sharded. More details — «Defining a Sharded Table by Creating a Persistent Class».
  • The object model now supports sharding. The methods %New(), %OpenId, and %Save() work with objects of a class whose data is distributed across multiple shards. Note that the code runs on the server to which the client is connected, not on the one where the object is stored.
  • The algorithm for executing cluster queries has been improved. The Unified Shard Queue Manager queues requests for processing by a pool of processes, instead of starting new processes for each request. The number of processes in the pool is determined automatically based on server resources and load.

Infrastructure and Cloud Deployment.

This release includes improvements in infrastructure and cloud deployment, including:

  • Support for Tencent Cloud. InterSystems Cloud Manager (ICM) now supports infrastructure creation and application deployment based on InterSystems IRIS in Tencent Cloud.
  • Support for named volumes in Docker, in addition to folder mounting (bind mount).
  • ICM supports flexible scaling — configurations can now be scaled, meaning they can be recreated with more or fewer nodes. Learn more — "Reprovisioning the Infrastructure" and "Redeploying Services».
  • Improvements in creating custom containers.
  • ICM supports a new sharding architecture.
  • The default user in containers is now not root.
  • ICM supports the creation and deployment of private networks, where a bastion node connects the private network to the public network and provides additional protection against Denial-of-Service attacks.
  • Support for service discovery via secure RPC.
  • ICM supports deployment in multiple regions. This ensures high availability of the system even if an entire region goes down.
  • Ability to update ICM while retaining information about already deployed systems.
  • Non-containerized mode — ICM can now directly deploy cluster configurations on Google Cloud Platform without containers, as well as install Web Gateway on Ubuntu or SUSE.
  • Support for merging iris.cpf from two files. This helps ICM to run InterSystems IRIS with different configurations depending on the mode in which the installation operates. This feature simplifies automation and support for various configuration management tools such as Kubernetes.

Analytics

Selective cube rebuilding

Starting from this release, InterSystems IRIS Business Intelligence (formerly known as DeepSee) supports selective cube building — only one metric or dimension. You can modify the cube description and rebuild only what has changed, keeping the entire cube accessible during the rebuild.

PowerBI connector

Microsoft PowerBI now supports working with tables and cubes from InterSystems IRIS. The connector is included with PowerBI starting from the April 2019 release. Learn more — "InterSystems IRIS Connector for Power BI».

Query result preview

This release introduces a new preview mode when creating pivot tables in Analyzer. This allows you to quickly assess the correctness of the query without waiting for its full results.

Other improvements

  • Traversing a global with the $ORDER function in reverse (direction = -1) is now as fast as in the forward direction.
  • Improved logging performance.
  • Support for Apache Spark 2.3, 2.4 has been added.
  • Support for the WebSocket client has been added. Class %Net.WebSocket.Client.
  • The version control class now processes events when changes are made to the product page.
  • Whitelist for filtering allowed requests to CSP, ZEN, and REST.
  • Support for .NET Core 2.1.
  • Improved ODBC performance.
  • Structured log for easier analysis of messages.log.
  • API for checking errors and warnings. Class %SYSTEM.Monitor.GetAlerts().
  • The class compiler now checks that the global name in the storage descriptor does not exceed the maximum length (31 characters) and returns an error if it does. Previously, the global name was truncated to 31 characters without warning.

Where to get it

If you have support, download the distribution from the Online Distributions site wrc.intersystems.com

If you just want to try InterSystems IRIS — https://www.intersystems.com/ru/try-intersystems-iris-for-free/

Even easier with Docker:

docker run --name iris20 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2020.1.0.215.0

Webinar

On April 7 at 17:00 Moscow time, there will be a webinar dedicated to the new release. It will be hosted by Jeff Fried (Director, Product Management) and Joe Lichtenberg (Director of Product & Industry Marketing). Register now! The webinar will be in English.

Source: habr.com

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster