19.5.16での変更点
Oracle NoSQL Databaseリリース19.5.16 Enterprise Editionで次の変更が行われました。
トピック
新機能
-
複数リージョンの表が導入されました。これを使用すると、各リージョンが別々のOracle NoSQL Databaseストアである複数のリージョンに存在する「任意の場所で読取り可能」および「任意の場所で書込み可能」である表を作成できます。これはプレビュー・リリースであり、一般的な可用性バージョンは将来のリリースで使用可能になります。
[#27728] -
サービスのネットワーク名解決キャッシュを構成する方法が改善しました。アドレス・キャッシュは、名前解決中にホスト名を解決するために使用されます。名前参照の成功または失敗結果をキャッシュに保存する期間を指定するために、2つの値が使用されます。詳細は、ネットワーキング・プロパティ・ページのアドレス・キャッシュの項を参照してください。
新しいSNを作成する場合、
[#27660]makebootconfig
コマンドの-dns-cachettl
フラグを使用して値を構成できます。デプロイメント後は、SNのパラメータdnsCacheTTL
およびdnsCacheNegativeTTL
を変更することで初期値をオーバーライドできます。これら2つのパラメータはポリシー・パラメータでもあるため、将来のSNデプロイメント用として設定できます。各サービスは、モニタリングSNと同じパラメータ値を共有します。SNのパラメータを変更した場合、新しい値を有効にするには、すべてのサービス・プロセスを再起動する必要があります。管理サービス、RNサービスおよびアービタ・サービスは自動的に再起動されますが、SNは手動で再起動する必要があります。 -
表APIに新しい非同期メソッドが追加されました。アプリケーションは、このメソッドを使用して、結果を待機するためのスレッドを使用せずにコールを実行できます。その結果、同時コールを多数行うクライアントの効率性を高めることができます。
クライアントは、同じソケットでの複数のコールの多重化をサポートする新しいネットワーク・プロトコルを使用できるようになりました。これを使用して、非同期操作をサポートしたり、必要なソケット接続数を削減したりできます。新しいクライアントはこのバージョンのサーバーのみと互換性がありますが、サーバーは引き続き古いクライアントをサポートします。このリリースにアップグレードするときは、クライアントまたはHTTPプロキシをアップグレードする前に、必ずストアをアップグレードしてください。
TableAPIの新しいメソッド:getAsync
multiGetAsync
multiGetKeysAsync
tableIteratorAsync
tableKeysIteratorAsync
putAsync
putIfAbsentAsync
putIfPresentAsync
putIfVersionAsync
deleteAsync
deleteIfVersionAsync
multiDeleteAsync
executeAsync
KVStoreの新しいメソッド:executeAsync
KVStoreConfig
の新しいフィールドとメソッド:DEFAULT_NETWORK_ROUNDTRIP_TIMEOUT
USE_ASYNC
DEFAULT_USE_ASYNC
getNetworkRoundtripTimeout
setNetworkRoundtripTimeout
getUseAsync
setUseAsync
KVStoreFactory
の新しいフィールド:ENDPOINT_GROUP_NUM_THREADS_PROPERTY
新しいインタフェース:oracle.kv.ExecutionSubscription
oracle.kv.IterationSubscription
反復メソッド(
TableAPI.tableIteratorAsync
、TableAPI.tableKeysIteratorAsync
およびKVStore.executeAsync
)は、リアクティブ・ストリーム・フレームワークを使用して実装されます。他の非同期メソッドはjava.util.concurrent.CompletableFuture
を返します。また、新しい
[#24773]table.AsyncExample
の例も追加されました。 -
ServerResourceLimitExceptionクラスが追加されました。リソース制約のためにサーバーが要求を処理できない場合は、このクラスのインスタンスがスローされる場合があります。
[#27301] -
システム表への変更をサポートするために、新しいWRITE_SYSTEM_TABLE権限とwritesystableロールが追加されました。新しい権限とロールは、複数リージョンの表エージェントとともに使用することを目的としています。通常ユーザーは一般に、システム表を変更しません。
[#27830] -
Oracle NoSQLのHadoop/Hive/BigDataSQL統合コードは、Hadoop3、Hive2およびBigDataSQL 4.0.と連携するようになりました。Hive1がHive2との互換性を失う原因となる変更がApache Hiveで加えられたため、Hadoop2、Hive1および/またはBigDataSQL 3.5.x環境でMapReduceジョブ、Hive問合せおよび/またはBigDataSQL問合せを実行する場合は、18.3リリースのOracle NoSQL Databaseを使用し、このリリースをHadoop3/Hive2/BigDataSQL 4.0環境で使用する必要があります。
[#27898] -
NoSQL Databaseストレージ・エンジンのソース・コード(Berkeley DB Java Editionとも呼ばれる)が、Community Editionリリース・パッケージに含まれるようになりました。
[#27478] -
次の文字列操作SQL関数が追加されました。
concatenation: arg1 || arg2 -> string , concat(arg1, arg2, ...) -> string?
substring(str, position[, for_substring_length] ) -> string
upper(str) -> string
lower(str) -> string
trim(from_str[, where[, trim_chars]]) -> string
ltrim(str) -> string
rtrim(str) -> string
length(str) -> integer
contains(str, contained_str) -> boolean
starts_with(str, start_str) -> boolean
ends_with(str, end_str) -> boolean
index_of(str, search [, pos]) -> integer
replace(str, search_str [, replacement_str] ) -> string
reverse(str) -> string
また、JSON null値を文字列にキャストした結果も、RuntimeErrorから文字列nullに変更されました。
[#27771]
バグとパフォーマンスの修正
-
AbsoluteConsistency読取り要求が、ネットワーク・パーティションのマイノリティ側のマスターに送信されるバグが修正されます。AbsoluteConsistency読取り要求には、認可マスター(レプリカの定数と接触しているマスター)が必要になりました。要求のタイムアウト時間内に適切なマスターを使用できない場合、要求はタイムアウトします。
[#27785] -
Hive2で正しくない結果が生じる原因となるHive2での変更を扱うために、Oracle NoSQL Hive統合コードで述語プッシュダウン・メカニズムが拡張されました。
[#27898] -
ストアに必要なマシンの数が過大評価されることがあるという容量計画スプレッドシートのバグが修正されました。
[#27939] -
実行中のDDLコマンドの複製であるDDLコマンドを実行すると、管理プランがAPPROVED状態で孤立することが生じるバグが修正されました。
[#27688] -
ソートの方向が降順の場合に特殊な値(NULL、json nullおよびEMPTY)をソートするときのバグが修正されました。
[#27945] -
削除するパスがNULLに評価される場合のUPDATE文のREMOVE句のバグが修正されました。この場合、UPDATE文は無限ループに入っていました。
[#27812] -
シャード・キーがデータのエクスポート元の表のいずれかと異なる表にデータをインポートしたときに、インポートしたデータの破損原因となるバグが修正されました。データは正しくインポートされるようになりました。
[#27782] [#27783] -
管理CLI履歴が起動時にロードされない原因となった問題を修正します。
[#27810] -
管理CLIのplan verify dataコマンドが正常に完了せず、RUNNING状態のままになる原因となった問題が修正されました。この問題は、5つ以上のシャードのあるストアでのみ発生しました。
[#27750] -
管理CLIのplan verify dataコマンドが、再起動後にマスター変更があったノードで失敗する原因になる問題が修正されました。このような場合にコマンドは正常に実行されるようになりましたが、個々のノードの検証中にマスターが変更された場合は依然として検証が失敗します。これは、ノードの検証を再実行する必要があることを意味します。この別の問題は将来のリリースで修正される予定です。
[#27773] -
kvliteインスタンスを停止するために使用したときにstopコマンドが失敗する原因となる問題が修正されました。次に例を示します。[#27748]
SNAの停止に失敗しました。ブートストラップ構成ファイルjava -jar KVHOME/lib/kvstore.jar stop -root /tmp/mykvlite
./mykvlite/config.xml
が存在しません。 -
列挙のタイムスタンプまたはマップを持つ表に対してDDLGeneratorが正しいDDLを作成しないという問題が修正されました。
[#28010] -
antlr4-runtime.jarという名前で以前に出荷されていたantlr4-runtimeサード・パーティ・ライブラリの「シェーディング」バージョンは、このリリースでantlr4-runtime-nosql-shaded.jarという名前で出荷されます。互換性がなく、異なるバージョンのライブラリ(たとえば、各種コンテナ、Hadoopクラスタ、Hiveクライアントなど)に依存する環境でアプリケーションを実行する場合に、ClassLoaderの競合(通常はNoClassDefFoundErrorとして出現します)を回避するには、ライブラリをシェーディングする必要があります。このような環境で実行する場合は一般に、アプリケーションのクラスパスで対応する名前を変更する以外、現在のアプリケーションに対して変更を行う必要はありません。
[#27616]
ユーティリティの変更点
-
管理CLIのtable createコマンドから-r2-compatオプションのサポートが削除されました。Avroのサポートを削除する一環として、キー/値データの上部に表を作成する機能がリリース19.3で削除されましたが、このオプションは誤ってそのまま残されていました。
[#27907]