New Features

New Features in NuoDB 4.1.1

The following is a list of new features in NuoDB 4.1.1.

A new DEFINER security option is now available for users who have been granted SELECT access on a VIEW object

The new system-wide database DEFINER security option allows a user to read a database VIEW object after being granted a single Grant Select on View privilege. This new option eases database administration and improves security when using a DEFINER security model is preferred. The database default remains the INVOKER security option. To enable the DEFINER security option, the new system property DEFAULT_VIEW_SECURITY must be set to DEFINER.
For more information when using the Scalar Execution Engine, see SQL System Properties.
For more information when using the Vector Execution Engine, see SQL System Properties.

Added several new monitoring metrics

Added two new Transaction Engine (TE) timing metrics, SQLListenerIdleTimeStatement and SQLListenerIdleTimeTransaction that narrow down SQLListenerIdleTime to when statements or transactions are open respectively. A new "Time" monitor metric was also added that timestamps when each monitoring period ended expressed in milliseconds. For more information, see Metrics Published by Database Processes.

Added resilience to network congestion events during failure detection and resolution processing (11570)

Previous behavior could lead to a full database shutdown during failure detection and resolution processing when the database environment is experiencing a heavy network congestion event. Failure resolution processing will now continue to run and complete (possibly taking a little longer in some scenarios) but will avoid an unwanted forced database shutdown event.

Added index build queuing to improve Storage Manager (SM) resource management

Previously the number of index builds which may run concurrently on a single SM was not limited. If many concurrent long-running index builds were issued, the Storage Manager (SM) could become resource constrained and slow end user application response time. To avoid excessive index build resource consumption, a new limit of 4 concurrent index build jobs is now enforced. For more information, see either reference,
Scalar Execution Engine: CREATE INDEX.
Vectorized Execution Engine: CREATE INDEX.

New Features in NuoDB 4.1

The following is a list of new features in NuoDB 4.1 compared with the original NuoDB 4.0 release.

A sub-set of these features may be available in maintenance releases for prior versions.

Transparent Data Encryption (TDE)

NuoDB now supports Transparent Data Encryption (TDE) which ensures that data written to disk is encrypted. The feature supports AES128 encryption and can be enabled and disabled online. For more information, see Transparent Data Encryption.

Vectorized Execution Engine (VEE)

The Vectorized Execution Engine (VEE) is now available for production use. VEE leverages modern CPU architecture by optimizing cache usage and enabling the use of SIMD instructions. The Scalar Execution Engine (SEE) remains the default SQL execution engine in NuoDB v4.1. VEE will become the default SQL engine in a future version of NuoDB. For more information, see About the Vectorized Execution Engine.

Partition an Unpartitioned Table

It is now possible to partition an existing unpartitioned table using range partitioning if an index exists on the partitioning column. This feature is useful where the need to partition a table was not foreseen at the time of creation. For example, where a table has grown to be very large over time. For more information, see Introduction to Table Partitions and Storage Groups.

Added support for Red Hat Enterprise Linux (RHEL) 8 and CentOS 8

NuoDB 4.1.x has been certified and is fully supported on Red Hat Enterprise Linux (RHEL) 8.x and CentOS 8.x. NuoDB has been formally tested and qualified with RHEL 8 and certification was approved by Red Hat through the RHEL 8 certification program. (10292). For more information, see System Requirements.

Increasing SM Throughput Using archive-threads

Storage Manager (SM) write throughput to the archive can be significantly improved by increasing the archive-threads configuration parameter. This is important for systems with a high workload and either Cloud storage or a Storage Area Network (SAN), both of which may typically have a write sync latency in the order of 1-5ms. For more information, see Tuning Tips for NuoDB Configuration.

New TCP keepAlive Connection Property

A new TCP keepAlive connection property has been introduced. Its default value is false. When set to true, the driver enables TCP KeepAlive on the socket that it opens to the Transaction Engine. For more information, see Connection Properties.

Enable Raft State to be Captured and Restored

A new nuocmd subcommand capture domain-state has been added to capture the Raft state. The Raft state may also be serialized as JSON and dumped using the GET /api/1/diagnostics/captureDomainState endpoint. An argument has been added to nuoadmin.jar that takes a JSON dump of the domain state and generates a Raft log file that can be copied into $NUODB_VARDIR. For more information, see nuocmd Commands and Options.

Delete a Storage Group From a Database

A new nuocmd subcommand delete storage-group has been added to delete an entire storage-group from a database. The purpose of the command is to notify NuoDB Admin that the offline storage group is permanently offline. NuoDB Admin then communicates this state information to the database processes. Before running this command, the storage group must first be removed from all archives or the archives serving the storage group have themselves been removed using the nuocmd subcommand remove storage-group. For more information, see nuocmd Commands and Options.

Gracefully Shut Down All Processes on a Server

A new nuocmd subcommand shutdown server-processes has been introduced to gracefully shut down all processes on a specified admin server. For further information, see nuocmd Commands and Options.

New Disk Read Performance Metrics

Two new performance metrics, DiskReadGeneral and DiskReadHotCopy have been added that track the number of bytes read from disk since the last time metrics were reported. For more information, see Metrics Published By Database Processes.

User Specific Access Control

NuoDB Admin now supports the ability to define multiple users and grant specific administrative access controls to those users. For more information, see User Authentication and Authorization.

IPv6 Support

NuoDB now supports IPv6 addresses. NuoDB processes can now be configured to use IPv6 to communicate across multiple host machines, and when communicating from a client application using a NuoDB driver.

Added Linux systemd Support During Install and Upgrade

NuoDB previously only included a SystemV rc file. With the wide adoption of systemd in many enterprise server Linux distributions, for example RHEL and Ubuntu, NuoDB also includes a systemd unit file in the install package. (9961)
In practice, users can continue using the command service nuoadmin start regardless if a systemd or SystemV init file is used.

User Override OF LBPolicy

NuoDB Admin now supports overriding the default Load Balancer (LB) policy with a user defined policy using a LBQuery expression filter. (10599)
This feature is especially useful when deploying a tiebreaker third site in Multi-data center or Multi-cloud deployments to deny certain Transaction Engines(TEs) from serving application connection requests as part of a design strategy to ensure quorum majority remains in the event of a primary data center outage. For more information, see, Maintaining Admin Process Quorum.

Added Kubernetes Aware Capabilities in NuoDB Admin

With this release, NuoDB Admin now includes Kubernetes Operator-like capabilities that allow it to respond to changes in Kubernetes state to ensure NuoDB Admin always remain synchronized with the Kubernetes runtime environment. For example, NuoDB Admin is now aware of (and will respond accordingly to) such Kubernetes operations as Pod and PersistentVolumeClaims deletion, or the scaling down of the Admin Process (AP) or Storage Manager (SM) StatefulSets for a database. For more information, see Kubernetes Aware Admin (KAA)

Ability to Send Log Messages to a File

This new feature allows users to choose to log messages to a file on the database process host rather than sending the log data over the network which can introduce overhead to the system. The log file can then be retrieved by the user when needed. The pynuoadmin and nuocmd command interfaces have been updated to support this new capability. The nuocmd subcommand get log-messages and show log-messages commands accept a new option --engine-file. For more information, see nuocmd Commands and Options.

Logging of Failed DDL Statements

Any DDL statements that return a SQL Error Code of -13 (SECURITY_ERROR) are now logged to the security logging channel. This includes logging of the failed statement, the user, and the client host IP address.

Ping Timeout Logging Enhancements (nuoagent Admin Tier)

  1. A new log message is written if a database process is asked to participate in failure resolution, but it does not have the ping-timeout database option enabled.

  2. New log messages are written to report the state of the node listener thread at the time of ping timeout:

    1. Report if the listener thread has messages waiting to be applied at the time of ping timeout.

    2. Report if the listener thread took or is taking longer than the specified ping-timeout to apply a message.

JDBC Driver Enhancements

A new version of the NuoDB JDBC Driver has been released (version 21.0.0). This version of the NuoDB JDBC Driver contains only NuoDB libraries. All non-NuoDB libraries have been removed. For more information on using this driver, see Using the NuoDB Java JDBC Driver.


Support for the SKIP LOCKED clause for SELECT FOR UPDATE queries has been added.

SQL Standard Temporal Literal Types

Temporal literals allow users to explicitly create constants of type DATE, TIMESTAMP and TIME. This is useful when the user does not want to rely on implicit type checking to convert strings to temporal types.

Kubernetes Diagnostics Collection

A new command nuocmd get kubernetes-config has been added that displays Kubernetes configuration and state information specific to the NuoDB Kubernetes deployment. The collected information has also been added to the diagnostic package file that is created when running the nuocmd get diagnose-info command. For more information, see nuocmd Commands and Options.

Logging Categories

A new login-audit logging category is now available. (9680)
For more information on using this new category, see Description of Logging Categories.

Multi-threaded Hot Copy

To improve performance of the hot copy operation, support for multi-threaded backup operations has been added. A new hot-copy-threads database option controls the number of threads used for backup creation. For information on using hot-copy-threads, see Database Options.

Windows .zip Installation Package

A Windows installation package in .zip` file format is now available, providing additional installation flexibility for Windows environments. This includes the ability to install NuoDB multiple times on the same Windows server. This package must be installed manually. For more information, see Installing NuoDB Using the .zip File.

Memory Parameters

The mem database option now supports specification of values in binary format (Gi/Mi/Ki) as well as decimal format (G/M/K). All values will be interpreted as binary. For example, 1G = 1000^3 bytes and 1Gi = 1024^3 bytes. For more information, see Database Options.

Diagnostic Logging Message Improvements

A new nuocmd log message --message <MESSAGE> subcommand has been added, where <MESSAGE> is the message to log. For more information, See nuocmd Commands and Options.