Changes in 19.1.8
The following changes were made in Oracle NoSQL Database Release 19.1.8 Enterprise Edition.
New Features
-
Users can now monitor Admin related metrics using JMX.
[#27077]AdminMXBean.getEnvMetric
returns a JSON string containing a bundle of environment-related metrics. -
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.
[#22640] -
Enhanced the
[#27069]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 toCREATE 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
-
Fixed an issue in the implementation of the Streams API where a stream client could get a
[#27497]oracle.kv.MetadataNotFoundException
during start up, even after the checkpoint table gets created successfully. -
Modified store contraction so that the retired shard waits for stream clients to finish up to a configurable time out. A new RN parameter
[#27306]rnStoreContractWait
is added. -
Improved the scalability of metadata propagation for stores with very large numbers of tables.
[#27257] -
When creating a secure KVStore handle, an application could get a "Too many open files" exception when
[#27322]KVStoreFactory.getStore()
was invoked many times. This problem is now fixed by properly closing the Java keystore opens during the SSL initialization. -
Fixed a bug that the TableIteratorOption's consistency and requestTimeout configuration were ignored by index iterator and index keys iterator APIs:
[#27345]tableIterator(IndexKey, MultiRowOptions, TableIteratorOptions)
andtableKeysIterator(IndexKey, MultiRowOptions, TableIteratorOptions)
. -
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.
[#27353] -
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
andsecurityconfig
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 newclient.security
file by using themakebootconfig
andsecurityconfig
utilities, or by modifying theoracle.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
andsecurityconfig
utilities can be used to specify non-default values for this security parameter for a new installation, andsecurityconfig
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.
[#27414] -
Fixed
[#27328]TableAPI.getTables("sysdefault")
to return only tables in the sysdefault namespace. -
Fixed an exception that occurred when using the NO CACHE value for the GENERATED AS IDENTITY option in a query.
[#27368] -
Fixed a problem where the
[#27513]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. -
Fixed a bug where password contain equal mark cannot be read out from plain text password file store correctly.
[#27525] -
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.
[#27521] -
The import/export utility provides an
[#27515]overwrite
option that automatically overwrites any record that is found to exist in the Oracle NoSQL Database during import. -
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
[#27452]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 theRESTORE=STARTED
entry from thesnapshot.stat
file found in the snapshots directory. -
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 hadadmindir
specified. Users using versions prior to 19.1 can do the following command and then restart the SNA without the-restore-from-snapshot
option:
[#27454]cp -r admindir/snapshots/SNAPSHOT_NAME admindir/recovery
-
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.
[#27454] -
[#27474]NullPointerException
no longer occurs when a securekvstore
registers with a secure Elasticsearch cluster via theregister-es
Admin CLI command.
Utility Changes
-
Changed the default consistency policy for Admin CLI and SQL shell to ABSOLUTE.
[#27350] -
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.
[#27422]