Changes in 12cR1.2.1.57

The following changes were made in Oracle NoSQL Database 12cR1.2.1.57,

New Features

  1. The new method KVStore.appendLOB() now permits appending to an existing LOB (Large Object). As part of this change, the method PartialLOBException.isPartiallyDeleted() has been deprecated in favor of the new method: PartialLOBException.getPartialState(). Please consult the javadoc associated with these new methods, as well as the updated doc for the interface KVLargeObject, for a detailed description of this new functionality.

    This release is backwards compatible with LOBs created in previous releases, with one exception: Only LOBs created in this, or a later, release support the append operation. Attempts to use the append operation on LOBs created in previous releases will result in the method throwing an UnsupportedOperationException.

    LOBs created in this release cannot be read or deleted by clients using earlier releases. Such operations will typically fail with a ConcurrentModificationException. Please ensure that all clients are updated to this release before creating new LOBs. [#22876]

  2. GC log files for the Admin and RepNode services are now generated by default and placed in the KVROOT/<storename>/log directory (the standard location for all NoSQL related logging information). This default behavior only applies when using JDK release 1.7 or a later release, since gc log rotation is only supported in the more recent JDKs. The logging has minimal resource overheads. Having these log files readily available, conforms to deployment best practices for production java applications making it simpler to diagnose GC issues should the need arise. [#22858]

Bug and Performance Fixes

  1. The heap requirement of the Admin service, when operating on a store that has undergone numerous changes, has been reduced. [#21143]

  2. Fixed a bug in the Admin CLI "show plan -id <id>" command, which resulted in the omission of information about partition migration tasks from the plan history report. The command now correctly includes information about partition migrations. [#22611]

  3. Reduce internal timeout values, associated with the network connection between a master and a replica, to permit faster master failover upon encountering a network hardware failure. [#22861]

  4. An attempt to resume a failed put operation on a LOB larger than 3968K bytes could result in an incorrect ConcurrentModificationException in some circumstances. The bug has been fixed in this release. [#22876]

  5. Changed the way plans are represented in the Admin's memory. Previously, there was no limit on the potential size of the in-memory representation of currently active and historical plans. With this fix, only active plans are kept in memory. [#22963]

  6. Eliminated deadlocks in plan management in the Admin. [#22992]

  7. A bug in the argument checking for the StoreIteratorConfig setter methods has been fixed. [#23010]

  8. The makebootconfig command now prints a message when it declines to overwrite existing configuration files. [#23012]

  9. The Replication Node configuration has been tuned to reduce CPU utilization when the Replication Node's cache is smaller than required, and cache eviction is taking place. [#23026]

  10. The remove-admin command now permits removal of an Admin that is hosted by Storage Node that is not running. [#23061]

  11. The show plans command could sometimes cause a crash in the Admin CLI because it would consume too much memory. This has been fixed. [#23105]