New Features

This section includes new features and enhancements.

If a new feature or enhancement relates to a Zendesk request, the associated Zendesk reference number is displayed, for example (10118).

New Features in NuoDB 8.0

Improved table insert performance when using unique MERGE TREE indexes

Added table functions to access external CSV or PARQUET data files

  • Added the following external table functions to access data stored externally as CSV or PARQUET files

  • Added the following connection properties to allow the usage of Amazon S3 user credentials while accessing external files stored on Amazon S3 servers

    • S3_ACCESS_KEY_ID

    • S3_REGION

    • S3_SECRET_ACCESS_KEY

    These can be configured only using the SQL SET command. For more information, see Connection Properties and SET.

  • Added the external-data-dir database option to specify the directory for accessing data stored locally as CSV or PARQUET files

    For more information, see Database Options.

Added new VECTOR data type

  • Added a new VECTOR(<dimensions>, DOUBLE) data type to store vector data, such as embeddings, along with built-in functions for comparing vector similarity

    The VECTOR data type is supported in C, C++, and JDBC drivers. In other drivers, vector values are processed as strings.

    For more information, see SQL Vector Type and SQL Vector Functions and Operators.

  • Added the vector double data type to the DATATYPES system table

    For more information, see DATATYPES System Table Description.

Added the following commands to nuocmd to improve workload capture reliability

  • nuocmd pause transactions --timeout <timeout> to pause transactions on all Transaction Engines (TEs)

  • nuocmd resume transactions to resume transactions on all TEs

For more information, see nuocmd Reference and Troubleshooting with nuocmd.

Observability Enhancements

  • Added the following pseudo tables

  • Added IDLE_STATEMENT_TIMEOUT to PROPERTIES system table

    For more information, see PROPERTIES System Table Description.

  • Added START_TIME and END_TIME to the LOCALSTATSUPDATEJOBS systems table

  • Added EXEC_TIME_90TH_PERCENTILE and EXEC_TIME_95TH_PERCENTILE to the LOCALQUERYPERFORMANCEMETRICS System table

  • Added the following metrics

    • ArchivePartitionAvailable

    • ArchivePartitionSize

    • CacheHits

    • CacheMisses

    • CacheWorkingSet

    • JournalPartitionAvailable

    • JournalPartitionSize

    • SpillFilePartitionAvailable

    • SpillFilePartitionSize

    • StorageReadBytes

    • StorageWriteBytes

    • StorageCancelledWriteBytes

    For more information, see Metrics Published by Database Processes.

  • Added the start ID to the names of generated core dump files

    Core dump files now use the file name format, core.nuodb.s<startid>.<hostname>.<pid>.

  • Added the start ID of each database process to the syslog messages sent to the host

  • Added system property information to nuoadmin.log when a Transaction Engine (TE) or Storage Manager (SM) starts

  • Reclassified log messages and improved message content

    Critical log messages were updated and reclassified to ERROR or WARN where appropriate. Additional information was added to the log messages to improve clarity and usefulness.

  • Improved logging on bare metal deployments

    A new fallback log is created to prevent log messages from being lost if a connection to the AP is unavailable. The log is created in the same directory where other NuoDB log files are created. For more information, see Fallback Log.

  • Improved the information provided by nuoarchive check when a BLOB or CLOB references a missing data descriptor

    If a visible record contains a BLOB or CLOB that references a missing data descriptor, nuoarchive check reports the record ID and transaction ID and classifies the issue as an error. Otherwise, the issue is reported as a warning.

  • Improved the output of the SHOW command to display database protocol version instead of database version, and to include the software version of the TE

    For more information, see SHOW.

  • Improved the error message displayed when a lock conflict occurs while using NOWAIT.

  • Improved the error message displayed when a transaction exceeds the configured lock wait timeout.

Added a SQL trace command to identify SQL statement performance issues

  • Added SET [ CONNECTION ] TRACE { ON | OFF } to enable and disable SQL tracing on the current connection.

  • Added SET ENGINE TRACE { ON | OFF } to enable and disable SQL tracing on the current Transaction Engine (TE).

  • Added the following pseudo tables:

    • LASTENGINETRACE: to retrieve the tracing data captured on a TE during the most recent tracing session.

    • LASTTRACE: to retrieve the tracing data captured on the current connection during the most recent tracing session.

Added support for Java 25

For more information, see Software Requirements.

Updated the NuoDB container base image to Rocky Linux 9 to improve security for container-based deployments

Added progress of atom updater to the log as a percentage

Atom updater keeps atoms sufficiently up to date to prevent them from falling behind the minimum read version of the database.

Added support for SELECT statements without a FROM clause when SELECT references only scalar expressions and constants (14979)

For more information, see SELECT.

Added the JSON_ARRAY_APPEND() function (14673)

For more information, see Modify Functions.

Improved the performance of the SQL execution plan operator Sort

Added the following SQL string functions

  • HEX()

  • UNHEX()

  • UUID()

  • UUIDV4()

  • UUIDV7()

  • UUID_BIN_TO_STR()

  • UUID_STR_TO_BIN()

For more information, see SQL String Functions and Operators.

Added SELECT <expression> IS [NOT] DISTINCT FROM <expression>

For more information, see IS [NOT] DISTINCT FROM.

Update validation is now also performed when using Common Table Expressions (CTEs) with DML statements

In earlier versions, this validation was performed for views only.

Improved optimization of SQL queries that include ORDER BY and LIMIT clauses

New Features Previously Included in NuoDB 7.0.x Releases

Added the TotalClientConnectionsMemUsage database metric to report an estimate of the aggregated memory usage for each SQL client connection

For more information, see Metrics Published by Database Processes.

Added nuocmd start sm --wait-for-archives

--wait-for-archives enforces storage-group leader assignment by waiting until the specified number of archive objects exist. For more information, see nuocmd start sm.

Added the following metrics

  • ArchiveReadQueueForSyncTime

  • ArchiveReadQueueHighTime

  • ArchiveReadQueueLazyTime

  • ArchiveReadQueueLowTime

  • ArchiveReadQueueMediumTime

For more information, see Metrics Published by Database Processes.

Extended the optimization of SQL execution for MIN() and MAX() functions to non-covering indexes

Improved the output of EXPLAIN for queries using MIN() and MAX() functions

Added the LOCALSTATEMENTSLASTEXECUTION pseudo table that contains information about the last SQL statement executed by a user

For more information, see LOCALSTATEMENTSLASTEXECUTION System Table Description.

Added internal optimizations to improve the performance of SQL queries that use constant IN lists with MIN() or MAX() functions (14467)

For more information, see MIN() and MAX().

Added the USE_ORDERING hint

For more information, see the USE_ORDERING Hint.

Added support for Red Hat Enterprise Linux (RHEL) 9.x and Rocky Linux 9.x (13436)

For more information, see System Requirements.

Added the REQUESTER field to the LOCALSTATSUPDATEJOBS system table

Added the reason for re-optimization in the EXPLAIN statement output

Allowed the use of Common Table Expressions (CTEs) with DML operations (14619)

For more information, see WITH.

Optimized SQL execution when MIN() and MAX() functions are used with a covering index (13147, 13392)

Improved the error message reported when executing an UPDATE or DELETE SQL statement that includes an unsupported OUTER JOIN

Improved the performance of SQL queries that use temporary tables with ON COMMIT DELETE ROWS, when the tables are not modified during a transaction

Deduplicated messages logged while using nuocmd are recorded at the [INFO] level instead of the [ERROR] level

Added the SCALARSTATSSPAN field to the STATSCACHE system table

For more information, see STATSCACHE System Table Description.

Added the type of index to the response of the nuodump command

For more information, see nuodump.

Added the WEEK interval type in the DATE_ADD function

For more information, see DATE_ADD and DATE_SUB Functions.

Added AUTORECOMPUTE { ON | OFF } to enable or disable auto-update on a table when using Table Statistics (Stats v3)

For more information, see How auto-update works, ALTER TABLE, and CREATE TABLE.

Updated the NuoDB container base image to Red Hat Universal Base Image (UBI) 8.10 to improve security for container-based deployments

Added -v to --file and --init nuosql options

For more information, see nuosql options.

Improved the log message generated when an Storage Manager (SM) shuts down unexpectedly due to corrupted atoms in its archive

The log message includes the type of atom, the reason for the SM shutdown, and the recommended next step for recovery. For example, "Records 75/1: atom is corrupted. Restart the SM to sync the corrupted atom from another SM: …​".

Improved the performance of the StreamingCoveringScan index processing operator

For more information, see Data-To-Code Execution.