NuoDB Changelog

What's new in NuoDB 2.4.1.2

Jun 20, 2016
  • New Management Tier Features:
  • The online backup feature is now generally available. A new NuoDB Manager command, hotcopy, lets you copy the current state of a running database from a storage manager without shutting down the SM.
  • NuoDB release 2.4 also includes the following new management tier features:
  • New host property: regionBalancerLocalFallback. This property is for use with the ChainableRegionBalancer load balancing policy. When a connection request specifies the LBRegion connection property then the specified region is used. When a connection request does not specify the LBRegion connection property then the setting of the regionBalancerLocalFallback property determines the behavior:
  • When regionBalancerLocalFallback is set to false (the default) then it is a connection error. This is regardless of whether or not there is a subsequent balancer policy in a specified chain.
  • When regionBalancerLocalFallback is set to true then the region of the broker is used.
  • The NuoDB Manager command line tool provides the following new capabilities:
  • The show domain administrators command lists domain administrator accounts created with the NuoDB Manager create domain administrator command.
  • The shutdown host command takes two new Boolean parameters. When set to true their behavior is as follows:
  • The shutdownHost parameter terminates the broker on the specified host.
  • The removeFromMembership parameter removes the specified host from the durable domain configuration.
  • The show metricKeys command lists the names of metrics that the broker tracks. In NuoDB REST API queries, you can use these metric names to obtain statistics and then plug the values into a third-party monitoring system.
  • The show database updateCommand outputs information for a specified database. This information includes the template the database is using and the settings of any additional database options, as well as settings of any variables and tag constraints. This information is useful when you want to update the database.
  • The show domain health command displays information about the health of the domain. To collate this information, a broker connects to each reachable broker and uses each broker's view of the domain to diagnose membership or connectivity problems. This is a preview feature.
  • The diagnose command takes a new option, metadata, which is set to full or none. The default is full, which means that the output contains an instrumentation dump for each process. Specify none to omit this information from the output.
  • When you create a database you can now specify a retry and back-off policy for a process group. In previous releases, you could specify a retry and back-off policy only for the database as a whole.
  • You can now add a process group to a template.
  • You can now use Automation Console to disable and re-enable the enforcer for the domain or for a particular host.
  • New SQL Features:
  • The SQL TRUNCATEstatement is faster.
  • Explicit transaction control is now supported within stored procedures. This is the ability to start, commit, or rollback transactions.
  • It is now possible to include dynamic SQL in stored procedures and UDFs. The EXECUTE IMMEDIATE statement allows the execution of arbitrary SQL statements with parameters.
  • There is now support for Data Definition Language (DDL) statements in stored procedures and UDFs. Generic DDL is supported by the EXECUTE IMMEDIATE statement. In addition to this, it is now possible to execute CREATE TABLE, DROP TABLE, CREATE INDEX, and DROP INDEX statements within a stored procedure, UDF or trigger.
  • There is now basic support for cursors in stored procedures. Cursor variables are bound to a query definition. Using cursors allows fetching a query result set, one row at a time.
  • It is now possible to return multiple result sets of items from a stored procedure.
  • There is a new CONTINUE statement which is similar to the BREAK statement, however, rather than breaking out of the loop, it jumps to the end of the loop, and checks if it should keep executing. The CONTINUE statement can be used in the following loops: WHILE, FOR SELECT, FOR INSERT, and FOR EXECUTE.
  • Support for ALTER TABLE... ADD CONSTRAINT has been added. When adding a constraint, a check is made to determine if the new constraint would be violated by any of the data already in the table, in which case the ALTER TABLE would be aborted.
  • The nuosql command line utility now has the capacity to print the elapsed time for executing a command.
  • The nuosql command line utility now has the capacity to log every SQL statement and its query plan for a session.
  • You can now pass optimizer hints to the SELECT statement.
  • User authentication using LDAP is now supported in preview mode.
  • New Driver Features:
  • JDBC Logging is now supported.
  • JDBC DataSourcenow supports statement caching.
  • JDBC X/Open XA Transactions are now supported in preview mode.
  • Miscellaneous New Features:
  • Support has been added for CentOS/RHEL 6.5 and 6.6.
  • Management Tier Changes in 2.4:
  • The default value for the following host properties has changed. Host properties are specified in the install_dir/etc/default.properties file.
  • Caution: These changes are incompatible with previous releases and they go into effect as soon as you install 2.4:
  • removeSelfOnShutdown is now false by default.
  • heartbeatPeerTimeout is now 45 seconds by default. This means that a peer that is non-responsive for 45 seconds is disconnected from the other peers. In previous releases, the default setting, heartbeatPeerTimeout=0, meant that a peer waited for a ping acknowledgement forever and did not disconnect a non-responsive peer. NuoDB recommends a minimum setting of 20 seconds for the heartbeatPeerTimeout property.
  • processStartWaitBarrier is now All by default. This property was previously undocumented. The ALL setting means that the ProcessReconnect barrier and the DSMResync barrier are enabled for all databases (managed and unmanaged). This prevents split-braining a database.
  • RaftLogCompactionThreshold is now 512 log entries by default. In previous releases, the default value for this property was a much higher number.
  • The automation retry and backoff mechanism is turned on by default. This is controlled by the backoff.reqMinUpTime database option, which has a new default of 30000 milliseconds and which is now specified in each database template. In previous releases, the default was that this mechanism was not turned on. NuoDB strongly advises you to keep this mechanism turned on.
  • Database templates in release 2.4 have been upgraded from version 4 to version 5. The changes in version 5 include:
  • Each template now specifies this database option as a default: "backoff.reqMinUptime" : "30000". This turns on the automation retry and back-off mechanism.
  • The Multi Host template and the Geo-Distributed template now specify "max" : "${TE_MAX:}" in the TEs process group. This indicates that the default is that the number of transaction engines for a database is unlimited.
  • The Minimally Redundant, Multi Host and Geo-Distributed templates still specify this database option as a default: "hostLimit" : "${HOST_LIMIT:false}". However, the behavior has changed in that this now means that for each process group specified in the template, the broker can start one process per host per database.
  • The default value for the following database options has changed:
  • The default value for backoff.reqMinUptime has changed from-1 to 30000 milliseconds (30 seconds). The-1 setting disables the retry and back-off mechanism. In other words, as mentioned before, the new default behavior is that the retry and back-off mechanism is turned on.
  • Again, NuoDB strongly advises you to keep the retry and back-off mechanism turned on.
  • The default value for backoff.MaxRetry has changed from the maximum integer to 10.
  • The NuoDB Manager create domain administrator command now lets you change the password of an existing domain administrator account. Invoke the command, specify the name of the existing user and then specify a new password.
  • The statistics a broker tracks for the retry and back-off mechanism are now durable. If a broker is restarted during the back-off retry period, the broker retries starting a process according to the durable retry history.
  • If your NuoDB installation uses an out-of-date nuodb-rest-api.yml configuration file then when the NuoDB 2.4 REST service starts it creates and loads the migrated-configuration.yml file. This file contains some updated settings as compared with the nuodb-rest-api.yml file that was provided with previous releases:
  • The setting of nuoWebAppPort has changed from 9001 to 8888.
  • The setting of a new key, nuoProxyPort, is the port that was previously assigned to nuoWebAppPort.
  • The setting of storefrontPath is now samples/demos/storefront/StorefrontDemo.war.
  • SQL Changes in 2.4:
  • It is no longer possible to rollback after a TRUNCATE.
  • For compatibility with other RDBMS, NuoDB SQL now allows square brackets '[]' as delimiters around identifiers.
  • The TRANSACTIONS system pseudo table, which shows information about all transactions currently running in the database, now has a COMMITPROTOCOL field. This field contains a string that indicates the commit protocol the transaction is using.T he string uses the same format as used in values of the commit database option.The COMMITPROTOCOL field replaces the COMMITMODE and COMMITTYPE fields; those fields are no longer included in the TRANSACTIONS table.
  • The DUAL table now supports the GetCommitProtocol() function in place of the GetCommitMode() function. The return value is the commit protocol the transaction is using and it is in the format used by values of the commit database option.
  • Driver Changes in 2.4:
  • The following drivers have been deprecated to Tier 2 support:
  • PHP PDO.
  • Drupal.
  • Python.
  • Previously, Tier 2 drivers were informally supported by NuoDB. As of NuoDB 2.4, all Tier 2 drivers and integration tools are no longer supported.
  • Miscellaneous Changes in 2.4:
  • Support for the following operating systems is deprecated as of NuoDB 2.4 and will be removed in a future release:
  • Windows 7

New in NuoDB 2.3 (Jun 20, 2016)

  • Expanded support for specific two-region, multi-data-center scenarios including active/passive (disaster recovery) and active/active-type operations
  • Performance improvements.
  • SQL enhancements including:
  • Updatable views.
  • ROWNUM() function.
  • Enhanced security regarding CREATE privileges in a schema.
  • NuoDB Manager command line editing capabilities.
  • Support for Java 8.
  • New Documentation:
  • Tuning tips.
  • C driver.
  • Default transaction behavior.
  • Provisioning the nuodb_system Database.
  • PropertiesProvider plugin classes.
  • Database connection properties.
  • Basic regular expression constructs.

New in NuoDB 2.2 (Jun 20, 2016)

  • Advanced management layer capabilities including:
  • Injecting Database options and Host Tag constraints per Transaction Engine or Storage Manager process group.
  • Automation retry and back-off policy.
  • NuoDB Manager tags search allows regular expressions.
  • Predefined alarms for NodeFailed, EnforcerNodeBackoff, and EnforcerNodeBackoffMaxRetried.
  • SQL layer enhancements including:
  • User defined functions (UDFs), in SQL and Java.
  • New query optimizations and statistics.
  • LAST_INSERT_ID().
  • Allow ORDER BY and LIMIT with DELETE.

New in NuoDB 2.1 (Jun 20, 2016)

  • Advanced management layer capabilities and improvements to the Automation Console, template capabilities, and monitoring/alerting support, including:
  • New REST API and command-line support for creating and managing databases and other aspects of system operation.
  • New REST API and JMX support for metrics and alerts.
  • Updated and improved Admin Center for browser-based access to the Automation Console, other tools, demos, and documentation.
  • SQL optimizer and index enhancements.
  • Enterprise integration support via JMX (preview).
  • Advanced "AWS Quickstart" for exploring scale-out provisioning of NuoDB.
  • Improved Storefront and Quickstart demos.
  • Performance improvements, including parallel loading for data migration.

New in NuoDB 2.04 (Jun 20, 2016)

  • Admin Layer:
  • The Automation Console domain dashboard adds some flexibility and customization. It now supports a configurable dashboard, where the user can configure/arrange various self-contained widgets.
  • Host Memory Usage Percent and CPU total percent can now be computed as "average" rather than "sum" across the domain or region.
  • A script for managing the backup of a running NuoDB database is available. See the NuoDB Tools Git repository to find the new nuodb_backup.py script.
  • A bug where the agent failed to remove a TE for certain state transitions has been resolved.
  • The NuoDB Manager command line options now appropriately override the engine defaults in nuodb.config.
  • A new Export command in the SQL Explorer executes a query and exports the result to the file system as a flat file. The user can pick the column separator, the character encoding, and the style of end of line (Windows or Unix).
  • There is now a new command in SQL Explorer (Open SQL file and Execute) which allows the user to upload a SQL file of any size and execute it on the server. The purpose of this function is to execute very large sequence of DDL statements.
  • In SQL Explorer, you can now click on an object and see the SQL statement that created the object. This includes tables, indexes, triggers, views, and stored procedures.
  • The SQL Explorer tree now scales to any amount of information. When expanding a node, Explorer loads up to 30 sub nodes and then inserts a bookmark labeled "More...". As soon as the user moves the mouse over the bookmark, another 30 elements are loaded. The user can also set a filter for Tables, Columns, and Procedures to reduce the list of returned objects to those which name contains a given string.
  • The NuoDB Agent now retries every peer on the peer list up to a certain amount of time. There is a new property, agentPeerTimeout, which if set greater than 1, will cause the agent to retry the initial entry peering into the Domain. The retry delay is 10 seconds hard coded, as before.
  • Data Layer:
  • A problem was discovered with Transparent Huge Pages on some versions of Linux. See the tech blog at Linux Transparent Huge Pages, JEMalloc and NuoDB for more information. A log message was added to warn the DBA that NuoDB failed to disable Transparent Huge Pages and the DBA must do so manually.
  • Performance with journaling enabled has been improved. The maximum journal size is now configurable with the TE command line option --journal-max-file-size-bytes.
  • SQL Layer:
  • The SQL name resolution ("namezero") phase has been completely rebuilt.
  • Significant query optimizer changes will make intersection and union query plans substantially more efficient.
  • There are some new and useful data type conversions, such as DATE_TO_STR() and DATE_FROM_STR(). See Data Type Conversion.
  • The nuosql command line tool now supports a .nuosql.init, similar to a .gdbinit or .emacs file. This is useful for specifying settings such as SET OUTPUT and SET PAGER.
  • Several changes were added to NuoDB metadata to better support DbVisualizer integration.
  • JOIN USING is now supported.
  • A simple, improved statement cache has been implemented to reduce memory usage. Note the new properties MAX_STATEMENT_CACHE_SIZE and TABLE_CHG_TOLERANCE documented at SET which govern aspects of the statement cache.
  • Drivers:
  • Our .NET driver now supports Entity Framework 6 and extension installs on Visual Studio 2013.
  • The JDBC driver DataSource now supports conventional "user" property. Previously, NuoDB only supported "username" which was different from many other common JDBC drivers.
  • There's a full serving of NuoDB PHP PDO Driver improvements and fixes, including:
  • Blob fixes.
  • Logging improvements.
  • PHP 5.5 support on Linux.
  • Migrator:
  • Data loading optimization was improved, more specifically loading of indexes, which is performed after DDL is applied and data loaded. This is still single-threaded as of this release, but work has begun on parallelization for the next release.
  • The Migrator has added support for MySQL data types, improved date types, and ENUM.
  • The Migrator includes SQL generator fixes too, with generated indexes and check constraints.
  • Documentation
  • Documentation for the following features has been improved:
  • ALTER SEQUENCE.
  • ALTER TABLE.
  • ANALYZE.
  • CREATE SEQUENCE.
  • Batch Processing from the Command Line.
  • REPLACE.
  • SET.