General Upgrade Notes
- Installing new software requires that each Storage Node be restarted.
- You do not need to invoke
makebootconfigcommand while upgrading your data store. - When your data store has more than one Storage Node, you can use the following
command to understand the order of upgrade. For
example,
show upgrade-order s2 s3 - When upgrading the software while the Storage Node is stopped, it is recommended
to move the existing log files under
$KVROOTand$KVROOT/<storename>/logto another directory. - When upgrading your data store, place the new software version in a new
$KVHOMEdirectory on a Storage Node running the admin service. Here the new$KVHOMEdirectory is referred to as$NEW_KVHOME. If the$KVHOMEand$NEW_KVHOMEdirectories are shared by multiple Storage Nodes (for example, using NFS), maintain both directories while the upgrade is in progress. After the upgrade is complete, you no longer need the original$KVHOMEdirectory. Before removing the original$KVHOMEdirectory you must modify the start up scripts on each Storage Node ( e.g.~/.bashrcwhere you have defined$KVHOME) to modify the value of existing$KVHOMEand replace it with the value of$NEW_KVHOMEso that the Storage Node uses the new software.
Enabling new features
The data store maintains a store-wide, system-level compatibility state, which controls when new, potentially incompatible features can be enabled after upgrade across the KV ecosystem. System compatibility state defines minimal versions with which system components remain compatible. A validation mechanism checks the system compatible state and prevents incompatible data from being written until the state advances to a version that is compatible with the new feature. It also defines a clear cutover point, so applications see consistent, well-defined behavior for persisted data.
Release 26.1 introduces the row creation time and user-supplied metadata features. Because these features add new metadata to row and write operations respectively, the data store's system compatibility state must be updated before they can be used.
After upgrading to 26.1, any rows that you add before you enable the data store’s compatibility state will have an ill-defined creation time. To ensure the values of creation times are accurate, you must only obtain creation times from rows that are inserted after the System Compatibility Version (SCV) is enabled to 26.1.
Additionally, for user-supplied metadata, rows written before enablement do not include the metadata. As a result, older direct driver/SDKs could potentially require application-level handling if they encounter rows that include user-supplied metadata until the direct driver/SDKs are upgraded.
To avoid these incompatibilities, update the system compatibility version by
running the plan upgrade-scv command after upgrading the
data store and its associated components. For details, see Post-Upgrade Procedure.
Compatibility with Release 25.3 experimental row metadata feature
From Release 26.1, the preview-only row-metadata feature introduced in Release 25.3 is replaced by the user-supplied metadata, which has slightly different semantics. When Oracle NoSQL Database reads older records that contain row metadata written with the 25.3 API, it interprets them as user-supplied metadata. You must use the user-supplied metadata APIs for querying and writing.
To use the user-supplied metadata feature, you must complete the Post-Upgrade Procedure.
Upgrade requirement for multi-region deployments
In multi-region deployments, all regions must be upgraded to 26.1 before enabling the user-supplied metadata feature through the SCV upgrade procedure. For more details, see Post-Upgrade Procedure.