20.3.17での変更点

Oracle NoSQL Databaseリリース20.3.17 Enterprise Editionで次の変更が行われました。

新機能

  1. 汎用一意識別子をサポートします。

    ランダムに生成されたUUIDを36文字の文字列として返す、新しいSQLファンクションrandom_uuid()が追加されました。

    STRINGデータ型の新しいオプションAS UUIDが追加されました。構文は、STRING AS UUIDです。STRING AS UUID列の入力および出力形式は、UUIDの正規形式である必要があります。これは32桁の16進数で、ハイフンで区切られた5つのグループで表示されます。形式は8-4-4-4-12で、合計36文字(32文字の16進数と4つのハイフン)です。

    STRING AS UUIDデータ型の新しいオプションGENERATED BY DEFAULTが追加されました。構文は、STRING AS UUID GENERATED BY DEFAULTです。UUID列の値は、ユーザーが値を指定しない場合、自動的に生成されます。

    [KVSTORE-215]
  2. 表メタデータの新しいクライアント側キャッシュ。

    表メタデータの新しいクライアント側キャッシュが追加されました。これは、様々なTableAPI.getTable()メソッドに影響を与えます。このキャッシュは、キャッシュ内の表インスタンスに対してサーバーへのリモート・コールを必要としないため、これらのメソッドのパフォーマンスが向上します。

    [KVSTORE-608]

バグとパフォーマンスの修正

  1. 新しい表のサブスクライブ時に、Streams APIが最も古いバージョンの表を誤ってプルする可能性がある問題が修正されました。かわりに、最新バージョンまたは必要なバージョンの表をプルします。

    [KVSTORE-492]
  2. 大文字と小文字を区別しないXRegionエージェントに必要な、JSON構成ファイルで定義されたリージョン名を作成しました。

    [KVSTORE-335]
  3. ローカル・ストアに対する内部情報の読取りまたは書込み時に、XRegionエージェントが表の初期化に失敗する可能性がある問題が修正されました。

    [KVSTORE-638][KVSTORE-651]
  4. Streams APIによって作成されたサブスクリプションのデフォルト・タイムアウトが10分から30秒に変更されました。

    [KVSTORE-660]
  5. リモート・リージョンからの複数リージョン表の転送中に、表が複数回コピーされる可能性があるパフォーマンスのバグが修正されました。

    [KVSTORE-483]
  6. 管理またはアービタ・ノードの可変JEパラメータを設定しても、ノードが明示的に再起動されないかぎり効果がない問題が修正されました。

    [KVSTORE-621]
  7. 表の初期化時にチェックポイントを作成するように複数リージョン表の実装が変更されました。別のリージョンから複数リージョン表の内容をコピーしているときにXRegionエージェントで障害が発生した場合、エージェントの再起動時にチェックポイントからコピーを再開できるため、初期化の完了に必要な時間が短縮されます。

    [KVSTORE-40]
  8. 計画のロックが変更され、同時計画実行による失敗が減少しました。この変更は通常、管理が実行するシステム・プランに影響します。

    [KVSTORE-432]
  9. 型指定されたJSON索引の場合に、索引付けの厳密さを緩めました。

    現在、JSONフィールドがDOUBLE型またはFLOAT型として索引付けされ、挿入される行にそのフィールドでのINTEGER型またはLONG型が含まれている場合、その挿入でエラーが発生します。これは厳密すぎます。修正のために、INTEGER値またはLONG値がDOUBLE型またはFLOAT型にキャストされます。キャストが可逆の場合、挿入は成功します。

    [KVSTORE-571]
  10. Java RMIが一時的に追加のRenewCleanスレッドを作成する問題を回避するために変更を加えました。追加のスレッドがレプリケーション・ノードとクライアントの両方で作成されていました。

    [KVSTORE-493]
  11. KVStore.executeAsync() APIの問題を修正しました。以前は、このAPIは非常に単純な問合せに対してのみ機能していました。その他の問合せでは、クラッシュまたは無限ループが発生する可能性がありました。このAPIが、すべての問合せで機能するようになりました。

    [KVSTORE-597]
  12. SET LOCAL REGION DDLコマンドの一部の動作が変更されました。新しい動作では、複数リージョン表が作成されている場合は、ローカル・リージョン名を変更できません。ただし、ストアがローカル・リージョン名をサポートしていないバージョンからアップグレードされた場合は例外です。その場合、複数リージョン表が存在すれば、ローカル・リージョン名を一度設定できます。最後に、ローカル・リージョン名では大文字と小文字は区別されませんが、大文字と小文字は保持されます。

    [KVSTORE-572]
  13. ソートまたはグループ化の問合せがヒントを使用して索引を強制し、索引がソート索引でない場合に、一般的なorder-byまたはgroup-byが問合せに追加されない問題が修正されました。

    [KVSTORE-624]
  14. 複数キー索引および集計関数を使用し、グループ化式を使用しない問合せのバグが修正されました。複数キー索引をソート索引にすることはできません。問合せにgroup-by句のない集計関数が含まれている場合に、このルールが考慮されていませんでした。その結果、一般的なgroup byが必要に応じて追加されていませんでした。

    [KVSTORE-626]
  15. 以前のリリースでは、Oracle NoSQL DatabaseとApache Hadoop MapReduce、Apache HiveおよびOracle Big Data SQLの統合は、個別のディストリビューション例に含まれているjavadocパッケージのサマリーを介してドキュメント化されていました。このリリースでは、この情報は次の公開されているユーザー・ガイドに正式にドキュメント化されています。
    [KVSTORE-213][KVSTORE-430][KVSTORE-431][#27588]
  16. Oracle NoSQL Database表に格納されたデータに対して全文検索問合せを実行できるように、Oracle NoSQL DatabaseをElasticsearchと統合する方法が、次の公開されているユーザー・ガイドに正式にドキュメント化されました。
    [#27380]
  17. 認証トークンを更新できず、再認証が必要な場合に、セキュアなストアで非同期表API (TableAPI.getAsyncなど)を使用して行われたコールが失敗する原因となる可能性がある問題が修正されました。

    [KVSTORE-727]
  18. アイデンティティ列を含む表に空の行を追加すると、「IllegalArgumentException: Primary key is empty」という例外が発生する問題が修正されました。

    [KVSTORE-502]
  19. 複数リージョン表での使用時にget kvが失敗するバグが修正されました。

    [KVSTORE-615]

ストレージ・エンジンの変更点(JE 20.3)

  1. レプリケーション・グループ内のマスターがDiskLimitExceptionで失敗しようとしている場合、まず、ログの削除を妨げている遅延レプリカがあるかどうかを確認します。遅延レプリカが見つかった場合、マスターはレプリカとの接続を切断し、レプリカを強制的に再接続してNetworkRestoreを実行します。

    [KVSTORE-145](20.3.0)
  2. Bツリーとデータ検証に対していくつかの修正が行われました。

    • (LNではなく) INに対して無効なLSNが検出された場合、検証機能は現在のデータベースの検証を中止し、次のデータベースに移動するように設計されています。以前は、検証機能が検証を正しく中止せず、次のデータベースに移動する前に、多数のNullPointerExceptionsがある可能性がある内部例外(OperationVerifyException)を報告していました。これらのエラーはVerifyError.Problem.RECORD_ACCESS_EXCEPTIONとして記録および報告されていました。検証が正しく中止されるように修正されたため、これらの例外は発生しません。
    • DbVerifyを介して検証を実行する場合、JE環境は読取り専用であるため、個々の問題のロギングは有効になりません。System.errに出力するには、java.util.logging.config.file JVMプロパティをcom.sleepycat.je.util.ConsoleHandler.level=ALLを含むファイルの名前に設定します。以前は、レート制限付きロギングが検証機能によって使用されていたため、前述のように明示的にロギングを有効にすると、個々の問題のごく一部のみが記録されていました。現在は、DbVerifyの使用時に、レート制限付きロギングが無効になります。これにより、すべての問題がデバッグ目的でログに記録されますが、大量の出力が生成される可能性があります。
    • DbVerify、VerifyConfigおよびRateLimitingLoggerのjavadocが改善されました。
    [KVSTORE-616](20.3.4)
  3. DbVerifyでfalse VerifyError.Problem.DATABASE_ACCESS_EXCEPTIONエラーが報告される原因となるバグと、false EnvironmentFailureException.UNEXPECTED_STATEエラーを報告するために環境を読取り専用として開くその他のユーティリティおよびプログラムが修正されました。

    [KVSTORE-706](20.3.9)
  4. CkptStartおよびCkptEndのログ・レコードは、ローカル時間ではなくUTCを使用したタイムスタンプ付きで出力されるようになりました。これは、他のすべてのログ・レコードに使用される形式です。

    [KVSTORE-627](20.3.13)