Changes in 19.1.8

The following changes were made in Oracle NoSQL Database Release 19.1.8 Enterprise Edition.

New Features

  1. Users can now monitor Admin related metrics using JMX. AdminMXBean.getEnvMetric returns a JSON string containing a bundle of environment-related metrics.

  2. Stored Admin events used to be pruned by time period only. Starting this release, they are pruned by the number of events as well. The default maximum number of events is 10,000. The default time period is 30 days.

  3. Enhanced the CREATE FULLTEXT INDEX command to now support the creation of text indexes on the contents of a JSON document stored in an Oracle NoSQL Database table. When the elements stored in a column of a given table are JSON documents, the enhancements made to CREATE FULLTEXT INDEX allow users to specify which of the document's attributes to index, as well as the data type Elasticsearch should use when indexing the attribute.


Bug and Performance Fixes

  1. Fixed an issue in the implementation of the Streams API where a stream client could get a oracle.kv.MetadataNotFoundException during start up, even after the checkpoint table gets created successfully.

  2. Modified store contraction so that the retired shard waits for stream clients to finish up to a configurable time out. A new RN parameter rnStoreContractWait is added.

  3. Improved the scalability of metadata propagation for stores with very large numbers of tables.

  4. When creating a secure KVStore handle, an application could get a "Too many open files" exception when KVStoreFactory.getStore() was invoked many times. This problem is now fixed by properly closing the Java keystore opens during the SSL initialization.

  5. Fixed a bug that the TableIteratorOption's consistency and requestTimeout configuration were ignored by index iterator and index keys iterator APIs: tableIterator(IndexKey, MultiRowOptions, TableIteratorOptions) and tableKeysIterator(IndexKey, MultiRowOptions, TableIteratorOptions).

  6. The number of user plans that were retained in the non-terminal state were previously unbounded. The oldest of these types of plans are now canceled and removed if the number exceeds 1000.

  7. The handling of server security parameters was modified so that the server now enforces a standard set of SSL protocols rather than supporting the protocols enabled in Java. By default, the server now requires SSL to use either the TLSv1.2, TLSv1.1, or TLSv1 protocol. Prior to this change, the server supported any protocol enabled in Java, so clients could be configured to use a non-default protocol without needing to modify the server configuration.

    The makebootconfig and securityconfig utilities generate configurations that configure clients to use the TLSv1.2, TLSv1.1, and TLSv1 protocols by default. As a result, this change to the default server configuration will only have an effect if the client uses a non-default configuration for SSL protocols. Users can configure their clients to use non-default protocols either by generating a new file by using the makebootconfig and securityconfig utilities, or by modifying the oracle.kv.ssl.protocols parameter in either the security file or security parameters. Prior to this change, removing the default setting for this parameter would have permitted using the set of protocols enabled in Java, which includes SSLv2Hello and, in Java 11, TLSv1.3. Now those protocols will only be used if explicitly configured for both clients and servers.

    The makebootconfig and securityconfig utilities can be used to specify non-default values for this security parameter for a new installation, and securityconfig can be used to update the parameter in an existing installation.

    For information on setting security parameters, see Security Configuration.

    Note that there are issues that prevent the use of the TLSv1.3 protocol with Java 11 for secure stores. We expect to enable this new protocol in a future release.

  8. Fixed TableAPI.getTables("sysdefault") to return only tables in the sysdefault namespace.

  9. Fixed an exception that occurred when using the NO CACHE value for the GENERATED AS IDENTITY option in a query.

  10. Fixed a problem where the plan failover Admin command could produce an incorrectly configured store by leaving electable group size override parameters enabled. The incorrect configuration could cause attempts to restore the original store topology to fail.

  11. Fixed a bug where password contain equal mark cannot be read out from plain text password file store correctly.

  12. Fixed a problem where the checkpoint made by Streams API user maybe overridden by an internal checkpoint made during elastic operations, or vice-versa. The incorrect internal checkpoint may cause streams to fail during elastic operations, and user may lose her previously made checkpoint. To support elasticity operations correctly, all stream clients need to be upgraded before performing the elasticity operation.

  13. The import/export utility provides an overwrite option that automatically overwrites any record that is found to exist in the Oracle NoSQL Database during import.

  14. Users will no longer get the error "Failed to start SNA: unexpected snapshot operation state" when trying to recover a snapshot taken using a prior release, and then restoring it using a later version of Oracle NoSQL Database. The snapshot.stat file was not getting cleaned up. 19.1 users who try to recover snapshots taken using 18.3 will still see this error. You can work around the problem by removing the RESTORE=STARTED entry from the snapshot.stat file found in the snapshots directory.

  15. Users can restore a backup that had admindir specified. Prior to this fix, the Admin failed to come up after a restore from a store that had admindir specified. Users using versions prior to 19.1 can do the following command and then restart the SNA without the -restore-from-snapshot option:

    cp -r admindir/snapshots/SNAPSHOT_NAME admindir/recovery
  16. Oracle NoSQL Database now uses all of the memory it can for the Java heap for heap sizes that are less than 32 GB rather than using some of it for the offheap cache. This change was made to improve performance.

  17. NullPointerException no longer occurs when a secure kvstore registers with a secure Elasticsearch cluster via the register-es Admin CLI command.


Utility Changes

  1. Changed the default consistency policy for Admin CLI and SQL shell to ABSOLUTE.

  2. The Import/Export utility has been enhanced to support JSON and MongoDB JSON formats. The preview migrator utility released in 18.3 is no longer supported.