Changes in this Release

Where changes relate to a Zendesk issue, the associated Zendesk reference number is displayed. For example (10118).

Although major fixes are documented in Resolved Issues, this Changes in this Release section may also include fixes.

Changes in NuoDB 4.0.3

This section provides an overview of the major changes included with NuoDB 4.0.3.

JDBC Driver Changes

Starting in version 21.0.0, the NuoDB JDBC Driver does not include any external dependencies. For example, libraries such as slf4j and bouncycastle which were included in previous versions of the JDBC Driver have been removed. If required by your application, these libraries will now need to be included by your application.

Log Messages

Logging of extraneous error "Failure sending MsgChairmanAck" messages during shutdown are not needed and have been removed.

Changes in NuoDB 4.0.2

This section provides an overview of the major changes included with NuoDB 4.0.2.

Kubernetes Support

Minimum requirements for open source and managed Kubernetes distributions, for example GKE, AKS, EKS, and RKS, have changed. Also, NuoDB's minimum requirements for Red Hat Openshift have changed. For more information, see Kubernetes System Requirements.

Kubernetes Helm Charts

A production-ready set of Kubernetes Helm Charts that are now available for both single and multi-cluster Kubernetes deployments. For more information, see the NuoDB Helm Charts github repository.

Note: NuoDB recommends consulting with NuoDB Professional Services when deploying these Helm Charts

Installing Licenses

NuoDB Admin (nuoadmin) now automatically propagates a license throughout a NuoDB Admin domain once it is added to the admin domain's key-value store with NuoDB Command. Prior to this release, it was necessary to copy the nuodb.lic license file to each host machine running a NuoDB Admin process. For information on obtaining and installing licenses in physical deployments of NuoDB, see here. For information on obtaining and installing licenses in containerized deployments of NuoDB, see here.

Docker Image Builds

For production deployments, NuoDB recommends that you generate your own unique and secure TLS encryption keys to authenticate and encrypt the execution of NuoDB Admin commands. To avoid compatibility issues (with default TLS keys shipped for product evaluations) during a rolling upgrade, the NuoDB docker image builds for NuoDB 4.0.1 and higher contain the same default TLS keys that ship with NuoDB 4.0.0.

Performance Improvement

Performance has been improved, in situations where TEs are under memory pressure, by avoiding unnecessary data reloads.

NuoDB Manager

When using the checkOptions parameter with NuoDB Manager's (legacy utility for domain and database management) restart database and start process commands, note that checkOptions is now disabled by default. When enabled, it ensures that new database processes are started with the same ping-timeout settings as the existing database processes. For information on using the checkOptions parameter, see Restart Database and Start Process.

Changes in NuoDB 4.0.1

This section provides an overview of the major changes included with NuoDB 4.0.1.

Logging

To help minimize potential confusion arising from the same table names being used in different schemas, the sql-statements logging category now includes the schema to which the table belongs, and the user name. For more information on using the sql-statements logging category, see Description of Logging Categories. (10118)

Changes in NuoDB 4.0

This section provides an overview of the major changes included with NuoDB 4.0.

Domain and Database Management

When performing a new deployment of NuoDB (in physical and VMware environments) using the Debian Package Utility or the RedHat Package Manager, NuoDB Admin (nuoadmin) is now the default interface for managing a NuoDB domain and database.

Note: This applies only to deployments of NuoDB in Linux environments. Where NuoDB is deployed in a Windows environment, NuoAgent remains the admin interface in NuoDB 4.0. Windows will default to using NuoDB Admin in a future release.

When performing a new deployment of NuoDB (in physical and VMware environments) using a Linux TAR file, the DBA can choose which interface to use for interface for managing a NuoDB domain and database.

If you're upgrading from a previous version of NuoDB to NuoDB 4.0, NuoAgent (nuoagent) remains the default interface for domain and database management. For information on this deprecated deployment model, see Physical or VMware Environments (NuoAgent).

Index Creation (Spill to Disk)

To improve performance of index creation, the processing for creating indexes on all non-temporary tables has been moved to the Storage Manager. Creation of indexes on temporary tables is still processed on the Transaction Engine. As a result:

For more information, see Reducing Memory Pressure on Transaction Engines.

Storage Group Removal

Prior to the release of NuoDB 4.0, it was possible to remove a storage group immediately after dropping all tables. Now, there can be a delay between dropping all tables in a storage group and being able to remove the storage group.

SQL Support

NuoDB SQL

The NuoDB SQL (nuosql) command line tool now supports inline comments ('–') when used in interactive mode. For information on using nuosql, see Using NuoDB SQL Command Line. (9424)

Errors generated are now prefixed with "Error <N>:", where N is the SQLSTATE value from SQL Error Codes.

SQL Functions and Operations

The OCTET_LENGTH built-in function now accepts binary types (Binary, VarBinary, and Bytes) in addition to string types. For more information on the OCTECT_LENGTH function, see SQL Functions and Operations.

SQLSTATE Values

The SQLSTATE value for the TE shutdown was requested before the transaction successfully committed exception has been changed from 58000 to 08007. (9566)

For more information on SQLSTATE values, see SQL Error Codes.

Date String Literals

NuoDB now supports date string literals in the yyyyMMdd format, for example 20190101. (9341)

GENERATED Columns

Undocumented and unsupported syntax for GENERATED columns is no longer allowed. For example, the following usage of GENERATED columns is no longer allowed:

SQL> CREATE TABLE a(i int GENERATED ALWAYS AS);
SQL> CREATE TABLE b(i int GENERATED ALWAYS IDENTITY);
SQL> CREATE TABLE c(i int GENERATED ALWAYS AS(s1));

COLLATE Syntax

If COLLATE case_insensitive syntax is used when creating the domain in which the table is being created, an error is now thrown, preventing the user from specifying the same syntax for the table definition. For more information on using the COLLATE parameter, see CREATE TABLE.

NuoDB Drivers

C/C++ Drivers

In previous releases of NuoDB, the NuoDB C driver (libnuoclient.so) and C++ driver (libNuoRemote.so) were statically linked with other library dependencies. With the release of NuoDB 4.0, the C and C++ driver libraries are now dynamically linked to other library dependencies. As a result, if the C or C++ driver libraries are copied or moved to different directories, the other library dependencies (libnuoengine.\*, libicu.\*, and libmpir.\*) must also be copied or moved to the same directory. (9888)

For more information on using NuoDB Drivers, see Client Development.

Database Packaging Changes

With the new client package, all client drivers and certain utilities have been removed from the database package. To access client drivers and utilities such as NuoDB Migrator and NuoDB Loader, the client package must be used. For more information, see the Product Distribution Package Files section in Physical or VMware Environments, and Drivers Shipped in the NuoDB Client-only Package.

C++ Driver

To help improve the display of NuoDB error messages in C++ client applications, the SQLException class has been modified to inherit from std:exception. This results in an Application Binary Interface (ABI) change to the libNuoRemote.so library. Any applications or clients using libNuoRemote.so must be recompiled before they can be used with version 4.0 version of the libNuoRemote.so library. For general information on using NuoDB's C++ driver, see C++ Driver API Reference.

JDBC Driver Error Handling

For SQLSTATE08007, the JDBC driver now throws SQLRecoverableException instead of SQLTransientConnectionException (which is thrown by all other SQLSTATE values starting with 08). For more information on SQLSTATE values, see SQL Error Codes.

Logging

The readability of the log output, when using the sql-statement-metrics log category, has been improved.

For more information on the sql-statement-metrics log category, see Description of Logging Categories.