Release InterSystems IRIS 2020.1

Release InterSystems IRIS 2020.1

In late March came out new version of InterSystems IRIS 2020.1 data platform. Even the coronavirus pandemic did not prevent the release.

Among the important things in the new release are an increase in core performance, generation of a REST application according to the OpenAPI 2.0 specification, sharding for objects, a new look for the Management Portal, MQTT support, a universal query cache, a new framework for creating product elements in Java or .NET. A complete list of changes and Upgrade Checklist in English can be found at link. More details - under the cut.

InterSystems IRIS 2020.1 is an extended support release. InterSystems makes two types of InterSystems IRIS releases:

  • Continuous delivery releases. They come out three to four times a year as Docker images. Designed for application development and deployment in the cloud or Docker containers.
  • Releases with extended support. They come out less often, but releases with fixes are released for them. Released on all platforms supported by InterSystems IRIS.

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

So.

Development of REST applications according to the specification

In addition to InterSystems API Manager, supported since version 2019.1.1, in release 2020.1 it became possible to generate the backbone of the code for the REST service according to the specification in the 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 in the program code, settings or other scripts, but in most cases it will be simple.

Read the InterSystems IRIS In-Place Conversion Guide and InterSystems IRIS Adoption Guide before converting. These documents are located on the InterSystems Worldwide Support Center website under "Documents».

Client languages

InterSystems IRIS Native API for Python

Low-level fast access from Python to multidimensional arrays in which InterSystems IRIS stores data. Read more - "Native API for Python».

InterSystems IRIS Native API for Node.js

Low-level fast access from Node.js to multidimensional arrays where InterSystems IRIS stores data. Read more - "Native API for Node.js».

Relational Access for Node.js

Support for ODBC access to InterSystems IRIS for Node.js developers

Two-way communication in Java and .NET gateways

.NET and Java gateway connections are now bi-directional. That is, a .NET or Java program called from IRIS through the gateway uses the same connection to access IRIS. Read more - "Java Gateway Reentrance».

Native API improvements for Java and .NET

The IRIS Native API for Java and .NET supports $LISTs and passing parameters by reference.

New look of the Management Portal

This release includes the first changes to the Management Portal. So far, they only concern the appearance and do not affect the functionality.

SQL

  • Universal Query Cache. Starting in 2020.1, all queries, including inline queries and class queries, will be saved as cached queries. Previously, using inline queries required recompiling the program to generate a new query code, for example, if a new index appeared or table statistics changed. Now all query plans are stored in the same cache and are cleared regardless of the program in which the query is used.

  • More query types are now parallelized, including DML queries.

  • Queries against a sharded table can now use implicit join "->".

  • Queries launched from the Management Portal now run in a background process. Long requests will no longer fail due to the web page timeout. Pending requests can now be cancelled.

Integration options

New framework for creating product items in Java or .NET

This release includes a new PEX framework (Production EXtension), which gives an additional choice of language for implementing production components. In this release, PEX supports Java and .NET for developing business services, business processes, and business operations, as well as inbound and outbound adapters. Previously, you could only create business services and business operations, and you had to call the code generator in the Management Portal. The PEX framework provides a more flexible means of incorporating Java and .NET code into production components, often without ObjectScript programming. The PEX package includes the following classes:

Read more - "PEX: Developing Productions with Java and .NET».

Monitor port usage in products.

The Port Authority utility monitors the ports used by business services and business operations. With its help, you can determine the available ports and reserve them. Read more - "Managing Port Usage».

Adapters for MQTT

This release includes adapters that support the MQTT (Message Queuing Telemetry Transport) protocol, which is often used in Internet of Things (IoT) applications. Read more - "Using MQTT Adapters in Productions».

Sharding

Simplified architecture

In this release, a simpler and more understandable way to create a cluster has appeared - based on individual servers (node ​​level), and not areas, as in previous versions. New API - %SYSTEM.Cluster. The new approach is compatible with the old namespace level cluster and does not require changes to existing installations. Read more - "Elements of Sharding" and "Sharding APIs».

Other sharding improvements:

  • Now you can co-shard (distribute frequently connected parts of two tables over the same shards) any two tables. Previously, this could only be done with tables that had a common shard key. Starting with this release, the COSHARD WITH syntax is also applied to tables with a system Id. Read more - "Create the tables" and "Defining a Sharded Table».
  • Previously, it was possible to mark a table as clustered only through DDL, now this can also be done in the class description - the new Sharded keyword. Read more - "Defining a Sharded Table by Creating a Persistent Class».
  • The object model now supports sharding. The %New(), %OpenId and %Save() methods work with class objects whose data is distributed over several shards. Note that the code is running on the server the client is connected to, not the one where the object is stored.
  • Improved cluster query execution algorithm. The Unified Shard Queue Manager queues requests for execution to 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 deployment in the cloud.

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

  • Tencent Cloud support. InterSystems Cloud Manager (ICM) now supports building infrastructure and deploying applications based on InterSystems IRIS on Tencent Cloud.
  • Support for named volumes in Docker, in addition to folder mounts.
  • ICM supports flexible scaling - configurations can now be scaled, that is, recreated with more or fewer nodes. Read more - "Reprovisioning the Infrastructure" and "Redeploying Services».
  • Improvements in creating your own container.
  • ICM supports the new sharding architecture.
  • The default user in containers is no longer root.
  • ICM supports the creation and deployment of private networks, in which a bastion node connects a private network to a public network and provides additional protection against Denial-of-Service attacks.
  • Support for service discovery over secure RPC.
  • ICM supports deployment in multiple regions. This ensures high availability of the system, even if the entire region is down.
  • Ability to update ICM and save information about already deployed systems.
  • Containerless Mode - ICM can now deploy cluster configurations directly, not in containers, on the Google Cloud Platform, as well as install Web Gateway on Ubuntu or SUSE.
  • Support for merging iris.cpf from two files. This helps ICM run InterSystems IRIS with different settings depending on the mode in which the installation is running. This capability simplifies the automation and support of various configuration management tools such as Kubernetes.

Analytics

Selective cube rebuilding

Starting with this release, InterSystems IRIS Business Intelligence (formerly known as DeepSee) supports selective cube building - only one measure or dimension. You can change the description of a cube and rebuild only what has changed, keeping the entire cube available during the rebuild.

PowerBI Connector

Microsoft PowerBI now supports InterSystems IRIS tables and cubes. The connector ships with PowerBI starting with the April 2019 release. Read more - "InterSystems IRIS Connector for Power BI».

Query Results Preview

This release introduces a new preview mode for pivot tables in the Analyzer. In this way, you can quickly evaluate the correctness of the query without waiting for its full results.

Other improvements

  • Traversing the global with the $ORDER function in reverse order (direction = -1) is now as fast as in direct order.
  • Improved logging performance.
  • Added support for Apache Spark 2.3, 2.4.
  • Added support for WebSocket client. %Net.WebSocket.Client class.
  • The version control class now handles events on changes to the product page.
  • Whitelisting to filter valid requests to CSP, ZEN and REST.
  • .NET Core 2.1 support.
  • Improved ODBC performance.
  • Structured log for easier analysis of messages.log.
  • API for error checking and warning. The %SYSTEM.Monitor.GetAlerts() class.
  • The class compiler now checks that the global name in the storage declaration does not exceed the maximum length (31 characters) and returns an error if it does not. Previously, the global name was truncated to 31 characters without warning.

Where to get

If you have support, download the distribution kit from the section Online distributions 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, a webinar dedicated to the new release will be held. It will be hosted by Jeff Fried (Director, Product Management) and Joe Lichtenberg (Director of Product & Industry Marketing). Register! The webinar will be in English.

Source: habr.com

Add a comment