23.1.21での変更点
Oracle NoSQL Databaseリリース23.1.21 Enterprise Editionでは次の変更が行われました。
トピック
新機能
- SQL BETWEEN演算子を実装しました。これは、下限と上限の両方を指定した範囲述語を含む問合せを簡単に記述できる、便利な演算子です。
[KVSTORE-1727]
- Javaファイルをコンパイルするビルド・プロセスを、Java 11が必要となるように変更しました。
[KVSTORE-1752]
oracle.kv.hadoop.hive.table
パッケージ内のすべてのクラスを含め、Hiveのサポートを削除しました。このリリースではJava 11が必要であり、HiveパッケージはそのJavaリリースをサポートするように更新されていないため、Hiveのサポートを削除しました。BigDataSQLにはHiveサポートが必要であったため、これも現在はサポートされなくなりました。[KVSTORE-1775]
- オンプレミスにバンドルされているプロキシに対するヘルス・チェック機能を次のURLで追加しました:
http[s]://<proxy host>/V2/health
[KVSTORE-1842]
バグとパフォーマンスの修正
- レプリケーション・ノードがそのリクエスト上限に達しそれ以降のリクエストに対応できなくなる原因となっていた競合状態を修正しました。スレッド・ダンプでは、多数の
KVRepNodeService misc async executor
スレッドが示され、ヒープ・ダンプには、1つ以上の接続中NioEndpointHandlers
によって参照されている終了したNioChannelExecutor
、および多数の終了していないDialogContextImpls
が含まれていました。レプリケーション・ノードがOutOfMemoryError
で終了するなどの、その他の現象も発生する可能性があります。ノードを再起動すると問題は解決されますが、再度発生する可能性があります。現在の修正では、NioChannelExecutor
スレッドは、アプリケーションでそのKVStoreインスタンスがすべて閉じられると停止するのではなく、アイドル状態のままになります。この動作には、将来のリリースで対処する予定です。[KVSTORE-1882]
- 複数リージョン表において、行を削除してから7日以内に同じキーで新しい行を挿入すると、その新しい行が、存続時間(TTL)で構成されていたかのように期限切れになることがあるというバグを修正しました。
[KVSTORE-1822]
- 接続エラーが発生するとStreams APIによる操作が失敗することがあるというバグを修正しました。
[KVSTORE-1832]
- regex_like関数においてパターンまたはフラグの引数が定数式であり定数リテラルでない場合に例外が発生するというバグを修正しました。たとえば、次のような問合せでは例外がスローされます:
select id from foo f where regex_like(f.address.street, concat("Old ", "Tunnel", ".*"))
[KVSTORE-1890]
- ゾーンのRF、アービタおよびマスター・アフィニティのチェックを次のように改善しました:
topology change-zone-type
を、タイプをセカンダリに変更するとマスター・アフィニティも削除され許可するアービタも削除されるように変更し、また、レプリケーション係数が0の場合にタイプをプライマリに変更すると許可するアービタも追加されるように変更しました。topology change-rep-factor
でセカンダリ・ゾーンのレプリケーション係数を小さくできます。topology change-zone-master-affinity
を、レプリケーション係数が0のプライマリ・ゾーンの場合はマスター・アフィニティが禁止されるように変更しました。topology change-zone-arbiters
を、レプリケーション係数が0のプライマリ・ゾーンの場合は、許可するアービタが必要になるように変更しました。plan deploy-topology
を、新しいトポロジによってプライマリのレプリケーション係数が小さくなる場合に失敗するように変更しました。以前は、プライマリ・ゾーンをセカンダリ・ゾーンに変更することや、プライマリをセカンダリ・ゾーンに変更してそのレプリケーション係数を小さくしてからそれをプライマリ・ゾーンに戻すことで、プライマリのレプリケーション係数を小さくできました。- plan deploy-zoneのレプリケーション係数は負にはできず、アービタを許可するプライマリ・ゾーン、またはセカンダリ・ゾーンの場合のみ0にできます。アービタはデフォルトでは許可されておらず、プライマリ・ゾーンの場合のみ許可され、レプリケーション係数が0のプライマリ・ゾーンの場合のみ許可される必要があります。また、マスター・アフィニティはデフォルトでは無効になっており、レプリケーション係数が0より大きいプライマリ・ゾーンの場合のみ許可されます。
topology preview
を、レプリケーション係数および許可するアービタの変更についての情報が含まれるように変更しました。
[KVSTORE-1739]
- プロキシ・ベースの問合せに関するバグを修正しました。まれに競合状態になることや適切に同期されないことが原因で、このバグによって問合せ結果が失われる可能性がありました。
[KVSTORE-1498]
- 次の場合に結合問合せで結果が正しくなくなる原因となっていたバグを修正しました
- ターゲット表にセカンダリ索引を介してアクセスする
- 問合せバッチがターゲット表の行Rで終了する
- 行Rが次の問合せバッチの開始前に削除される
[KVSTORE-1746]
- 次の場合に結合問合せで発生していたバグを修正しました
- 問合せでターゲット表の主キーを基準に降順でソートする
- プライマリ索引を使用してターゲット表をスキャンする
- 子孫表にアクセスする
この場合は、問合せで、ターゲット表の行と一致する子孫表の行を検索できません。
[KVSTORE-1770]
- 適用可能な索引が複数ある場合に問合せに最適な索引を選択するヒューリスティックに関するバグを修正しました。このバグは、問合せで、適用可能な複数の索引に対して1つの完全キーが指定されている(つまり、索引付きフィールドすべての条件が等しい)場合に発生します。
[KVSTORE-1810]
- パーティションを移行しようとして失敗するとStream APIで一部のパーティションからの一部のストリーム・レコードがスキップされることがあるというバグを修正しました。
[KVSTORE-1645]
- ストレージ・エンジンの新機能を活用すると永続性確認を非同期で処理できます。この変更点により、サーバーでのスレッド使用量が減り、負荷が高いときの挿入および更新のスループットが高まります。
[KVSTORE-330]
- パーティション移行などの拡張度操作の間に、
Consistency.Time
を使用する読取り操作が実行されると、正しくない結果が返されることがあるという問題を修正しました。この戻り値は、指定されている許容ラグより古い可能性があります。[KVSTORE-981]
create snapshot
管理CLIコマンドの出力に関するバグを修正しました。この修正では、create snapshot
の非JSON出力がJSON出力と一致するように変更し、定数RNについてのJSON出力におけるreturnCodeおよび説明を変更しました。[KVSTORE-1205]
- マイグレータでMRカウンタ・データ・タイプに対して正しくない表DDLがエクスポートされるというバグを修正しました。JSON列でMRカウンタ・タイプおよびMRカウンタにNOT NULLを使用しないでください。
[KVSTORE-1857]
- describe as json tableで正しくないJSON文字列が返されることがあるというバグを修正しました。JSON索引およびJSON MR_COUNTERのフィールド・パスで特殊文字の前にエスケープ文字('\')がありませんでした。
[KVSTORE-1905]