Oracle NoSQL Database変更ログ

リリース12cR1.2.1.8 Enterprise Edition

Oracle NoSQL Database 2.0は管理バージョン2に移行しました。これはオンディスク形式の変更であり、管理サービスによって格納される内部データに影響します。この変更は上位互換であり、2.0を使用してデプロイされた管理サービスは、旧リリースによって作成されたデータを読み込むことができます。この変更は下位互換ではないため、新しいリリースでデプロイされた管理サービスを、旧リリースのNoSQLで再起動することはできません。

既存のストアをリリース2.1にアップグレードするには、2.0リリースでストアを実行する必要があります。2.0以前のリリースで作成されたストアでリリース2.1を使用する場合には、2.1リリースにアップグレードする前にストアを2.0リリースにアップグレードしてください。

管理者ガイドの既存のOracle NoSQL Databaseデプロイの更新に関する項を参照してください。


12cR1.2.1.8 Enterprise Editionでの変更点

新機能

  1. このリリースには、ストアをオフラインにせず、また進行中の操作に大きな影響を与えずにNoSQL DBソフトウェア(クライアントまたはサーバー)をアップグレードするためのサポートが含まれます。また、アップグレードは増分的に実行できるため、すべてのコンポーネントで同時にソフトウェアを更新する必要はありません。このサポートには、クライアントおよびサーバーのコード変更と、新しいコマンドライン・インタフェース(CLI)コマンドが含まれます。[#22421]

    新しいCLIコマンドは、アップグレード・プロセスをサポートする管理者ツールとなります。これらのコマンドを使用した汎用のアップグレード手順は次のとおりです。

    1. 管理サービス1を実行するストレージ・ノードに新しいソフトウェアをインストールします。
    2. 新しいクライアントをインストールしてストアに接続します。
    3. verify prerequisiteコマンドを使用し、ストア全体がアップグレード対象として適切なソフトウェア・バージョンであることを確認します(すべてがNoSQL DBバージョン2.0であれば前提条件として適格です)。
    4. show upgrade-orderコマンドを使用して、アップグレードするノードの順序付きリストを取得します。
    5. ストレージ・ノードに新しいソフトウェアをインストールします(個別に、または順序付きリストに基づいてグループで)。
    6. verify upgradeコマンドを使用して、進行状況を監視し、アップグレードが成功したことを確認します。

    1今後のリリースではこの手順が不要になる予定です。

    アップグレード手順を中断した場合は、必要に応じて手順4から6を繰り返してアップグレードを完了してください。

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

  1. アプリケーションによって意図的に構成される場合を除き、NoSQL DBはレプリケーション・ノード・プロセスごとに-XX:ParallelGCThread jvmフラグを指定して、プロセスが使用するガベージ・コレクタ・スレッドの数を示します。以前は、使用されるアルゴリズムによって最小値1のスレッドが生成されていました。テストを重ねた結果、最小値はmin(4, <ノード上のコア数>)にまで引き上げられました。[#22475]

APIの変更点

  1. 管理コマンドライン・インタフェース(CLI)に、次のコマンドが追加されます。[#22422]

    verify prerequisite [-silent] [-sn snX]*

    このコマンドは、ストアの一連のストレージ・ノードが現行バージョンへのアップグレードに必要な前提条件を満たしていることを確認し、前提条件を満たしていないコンポーネントや接続できないコンポーネントを表示します。また、インストールされているソフトウェアが現行バージョンより新しいマイナー・リリースであるという無効なダウングレード状況でないこともチェックしてレポートします。このコマンドで、現行バージョンとはコマンドライン・インタフェースを実行しているソフトウェアのバージョンのことです。ストレージ・ノードが指定されていない場合は、ストア内のすべてのノードがチェックされます。

    verify upgrade [-silent] [-sn snX]*

    このコマンドは、ストアの一連のストレージ・ノードが現行バージョンに正常にアップグレードされたことを確認し、まだアップグレードされていないコンポーネントや接続できないコンポーネントを表示します。このコマンドで、現行バージョンとはコマンドライン・インタフェースを実行しているソフトウェアのバージョンのことです。ストレージ・ノードが指定されていない場合は、ストア内のすべてのノードがチェックされます。

    show upgrade-order

    このコマンドは、ストアの可用性を維持するためにアップグレードする必要がある順序で、ストレージ・ノードのリストを表示します。このコマンドは、1つ以上のストレージ・ノードを1行に表示します。1行に複数のストレージ・ノードが表示される場合、スペースで区切られます。1行に複数のストレージ・ノードが表示されている場合、そのノードをまとめて安全にアップグレードできます。複数のノードをまとめてアップグレードする場合、すべてのノードのアップグレードが完了してからでなければ、リストの次のノードはアップグレードできません。

    verify [-silent]コマンドは非推奨となり、verify configuration [-silent]に置き換えられます。verify [-silent]コマンドは、このリリースでも引き続き動作します。

ユーティリティとドキュメントの変更点

  1. このリリースでは、ユーティリティ・クラス WriteOperations (examplesディレクトリにあります)によって提供されるサンプル・コードに、ラージ・オブジェクト(LOBKVLargeObjectを参照)に対する書込み操作を実行するメソッドが追加されました。このリリースで追加された新しいユーティリティ・メソッドは、 FaultExceptionが発生したときに、関連するLOB操作を正しく再試行します。このリリースより前には、WriteOperationsユーティリティはラージ・オブジェクトでないオブジェクトに対してしか再試行メソッドを提供していませんでした。[#21966]

  2. レプリケーション・ノードで使用されるJEロック表の数(JE構成パラメータのje.lock.nLockTablesを介して制御される)が、1から97に増やされました。この変更でロック競合が緩和され、きわめて高いレベルの同時更新を特徴とするアプリケーションのパフォーマンスが向上します。[#22373]

  3. 管理CLIで、複数のデータセンターを作成できるようになります。各データセンターがレプリカのクォーラムより少ない数を保持するようにデータセンター・レプリケーションの要素を選択すると、ストア・レイアウトを作成できるようになり、1つのデータベースで障害が発生してもストア内のどのシャードでも書込み可用性が損なわれません。現在のリリースでは、どのデータセンターのノードもマスター選択に関与でき、永続性の確認に貢献します。その結果、距離がかなり離れているデータセンターが関わる場合には、マスター・フェイルオーバーと永続性確認に時間が長くかかるようになります。今後のリリースでは、この部分の柔軟性が向上する予定です。[#20905]

11g.r2.2.0.39での変更点

新機能

  1. Oracle Coherenceとの統合が実現し、Oracle CoherenceアプリケーションのキャッシュとしてOracle NoSQL Databaseを使用できるようになりました。また、アプリケーションはOracle NoSQL Databaseからキャッシュ・データに直接アクセスできます。この統合は、本製品のEnterprise Editionの機能であり、新しい独立のjarファイルとして実装されています。Oracle Coherence製品もインストールされている必要があります。この機能の詳細は、スタート・ガイドの他にjavadocも参照してください。[#22291]

  2. Enterprise Editionは、セマンティック・テクノロジをサポートするようになりました。具体的には、Resource Description Framework (RDF)、SPARQL問合せ言語、およびWeb Ontology Language (OWL)のサブセットがサポートされます。これらを総称して、Oracle NoSQL DatabaseのRDFグラフ機能と呼びます。RDFグラフ機能には、Oracle NoSQL Database Enterprise Editionでセマンティック・データを格納し問い合せるJavaベースのインタフェースがあります。この機能の詳細は、RDFグラフのマニュアルを参照してください。

バグ修正

  1. NoSQL DBのメモリー・リソースを設定するときに望ましいのは、makebootconfigユーティリティを実行するときSNごとにmemory_mbパラメータを指定し、理想的なレプリケーション・ノードのヒープおよびキャッシュ・サイズをシステムで計算させる方法です。ただし、レプリケーション・ノードのjavaMiscParamsパラメータとcacheSizeパラメータを使用して明示的にヒープおよびキャッシュ・サイズを設定すれば、標準のメモリー構成をオーバーライドすることもできます。以前のリリースでは、plan change-parametersコマンドを使用するときに明示的な値を設定すると正しく動作しましたが、change-policyコマンドを使用するときには正しく動作しませんでした。これが修正され、必要な場合には、javaMiscParamsとcacheSizeのパラメータがデフォルトのメモリー割当ての経験則をオーバーライドするようにchange-policyコマンドを使用できます。[#22097]

  2. ネットワークを利用できないノードで実行されるNoSQL DBのデプロイメントは、NoSQL DBのデモまたはチュートリアルを実行するとき発生するように、次のエラーを返すことがあります。
    java.net.InetAddress.getLocalHost() returned loopback address:<hostname> and
      no suitable address associated with network interfaces.
    
    これは修正されました。[#22252]

APIの変更点

  1. これ以前のリリースでは、書込み操作のときに基底となる永続ストアから例外が発生し、シャードのマスターでは書込みが完了したが、目的のレプリカ組合せでは所定の時間内に完了しなかったと示される場合、その例外は吸収され、クライアントには伝播されませんでした。もともと、この動作が望ましいとみなされていたのは、その例外がまれである(実装によって様々なチェックが先行して実行されるので)という理由に加えて、例外を吸収すると追加の例外やAPIレベルでの追加の通信を回避できるためAPIがシンプルになるという理由からです。検討と議論を重ねた結果、このような例外のために書込み操作が完了しなかったときにはクライアントに通知すべきであるという結論に至りました。その結果、書込み操作中にこのような条件が発生したときには、 RequestTimeoutExceptionがクライアントに伝播されるようになり、基底となる永続ストアからの当初の例外は原因としてラップされるようになります。この例外が発生したときに採用する戦略を含めた詳細は、RequestTimeoutExceptionJavadocを参照してください。

    これは修正されました。[#21210]


  2. 例外とエラー・メッセージでレコードの表示を制御する新しいパラメータが追加されました。hideUserDataをtrueに設定すると(これがデフォルトです)、サーバー側のログに出力される、またはCLIコマンドを通じて表示されるエラー・メッセージは、キー/値を"[hidden]"という文字列に置き換えます。エラーで実際のレコードの内容を見るには、パラメータをfalseに設定してください。[#22376]

ユーティリティとドキュメントの変更点

  1. 以前のリリースでは、NoSQL DBコンポーネントの起動中に<code<>plan deploy-topologyコマンドの結果として発生したエラーに関する情報は、NoSQL DBログ内部でしか表示されないことがあり、インストール時のトラブルシューティングを難しくしていました。このリリースでは、このような起動エラーを管理CLI show plan -id <id>コマンドで表示できるようになっています。[#22101]

  2. ストレージ・ノード・エージェントは、デフォルトでないMBeanServerインスタンスでMBeanを公開します。このリリースでは、デフォルトでないMBeanServerが標準JVMプラットフォームのMBeanと、Oracle NoSQL Databaseのみに関連するMBeanを公開するようになります。

  3. SNMPとJMX両方のインタフェースで、新しいtotalRequestsメトリックを使用できます。このメトリックは、サンプリング期間に発生するマルチ操作のシーケンスの数をカウントします。

  4. これ以前のリリースでは、製品のコンパイルとビルドは1.xバージョンのHadoop (CDH3)を想定して行われていました。そのため、以前のリリースを採用しているとき、2.xバージョンのHadoop (CDH4)に基づくクラスタに対してexamples.hadoop.CountMinorKeysサンプルを実行すると、そのサンプルによって開始されるMapReduceジョブがIncompatibleClassChangeErrorのために失敗していました。これは、Hadoop 1.xとHadoop 2.xの間でorg.apache.hadoop.mapreduce.JobContextに発生した非互換性が原因です。このエラーは、Hadoop 1.xとHadoop 2.xのどちらを基準にしてサンプルのコンパイルとビルドを行っても発生します。本製品のカスタマ・ベースで使用されているのはほとんどHadoop 2.xのみなので、このリリースではHadoop 1.xではなくHadoop 2.xをサポートしました。今後のリリースでは、Hadoopの両方のバージョン・パスが再度サポートされる可能性もありますが、その場合にはコードベースとそれに伴うリリース・アーチファクトのリファクタリングが必要となり、現在のビルド・プロセスについても大きな変更が必要になります。

    Hadoop 2.x (CDH4)のサポートを追加しました。[#22157]


  5. java -jar kvstore.jar makebootconfig -mountフラグが-storagedirに変更されました。"plan change-mountpoints -path <storage directory>"コマンドは非推奨となり、"plan change-storagedir -storagedir <storage directory>"が推奨されます。[#21880]

  6. ストレージ・ノード容量の概念について、管理者ガイドの記述を改めました。

  7. 管理者ガイドで、NoSQL DBデプロイの操作に必要なリソースの計算方法に関する項を改訂しました。


11g.r2.2.0.26での変更点

新機能:

  1. このリリースでは、管理サービスのレプリカを削除する機能が追加されます。複数の管理をデプロイしている場合、次のコマンドを使用してその1つを削除できます。
    plan remove-admin -admin <adminId>
    

    1つの管理インスタンスのみが構成されている場合、その唯一の管理を削除することはできません。

    可用性と永続性の理由から、少なくとも3つの管理インスタンスを常に維持しておくことをお薦めします。そのため、削除の結果として3つを下回るような削除を行おうとした場合、-forceフラグを指定しないかぎりコマンドは失敗します。

    現在マスターである管理を削除しようとすると、マスター権限は別の管理に移動します。プランが中断され、後から新しいマスター管理で再実行できます。中断されたプランを再実行するには、次のコマンドを使用します。

    plan execute -id <planId>
    

  2. 管理CLIのverifyには、単一のストレージ・ノードにホストされているレプリケーション・ノードでメモリー設定がストレージ・ノードのメモリー容量に適合することを検証するチェックが追加されています。これは、システム管理者がデフォルトをオーバーライドして手動でレプリケーション・ノードのヒープサイズを設定している場合に起きうるエラーへの対策です。[#21727]

  3. 管理CLIのverifyコマンドは、検証の問題をすべて違反またはノートと分類します。違反の方が重大度が大きく、システム管理者はその問題に対処するためにシステムの調整方法を決定する必要があります。ノートは、これより重大度が低い警告です。[#21950]

バグ修正:

  1. レイテンシの統計について、いくつか修正を実施しました。修正が適用されるのは、管理コンソールにおけるサービス側統計、CLIのshow perfコマンド、.perfファイルと.csvファイル、そして.getStatsによって返されるクライアント側統計です。ただし、95%から99%の値に対する修正はクライアント側統計には適用されません。これらの値はクライアント側APIには出現しないからです。 [#21763]

  2. -servicerange引数によってポート範囲がmakebootconfigユーティリティに指定されている場合に、ポート範囲からポートを割り当てるように管理プロセスを変更しました。引数を指定しない場合、管理プロセスは使用可能な任意のポートを使用します。Oracle NoSQL Databaseで使用されるポートの構成の詳細は、管理者ガイドを参照してください。[#21962]

  3. ローカルに格納されるトポロジが欠落するというまれなケースに対処するように、レプリケーション・ノードが変更されました。トポロジが欠落すると、TopologyManagerでjava.lang.NullPointerExceptionがスローされ、レプリケーション・ノードは開始できなくなります。[#22015]

  4. ストレージ・ノードで複数のレプリケーション・ノードをホストしている場合に、レプリケーション・ノードのメモリー計算が堅牢になっています。以前のリリースでは、plan change-paramsコマンドを使用して、複数のレプリケーション・ノードをホストしているストレージ・ノードの容量パラメータを小さくすると、レプリケーション・ノード・ヒープが極端に小さくなり、起動時にレプリケーション・ノードがエラーになっていました。トポロジのバランスを再調整する際にこの問題は修正されますが、そのときまでレプリケーション・ノードは使用できなくなっていました。デフォルトのメモリー・サイズ計算で、ストレージ・ノード上にあるレプリケーション・ノードの数が考慮されるようになり、deploy-topologyコマンドによってレプリケーション・ノードが再割当てされるとき、レプリケーション・ノード・ヒープ・サイズが調整されます。[#21942]

  5. レプリケーション・ノードの起動時に、次の例のようにNullPointerExceptionの原因になるバグを修正しました。例外がレプリケーション・ノード・ログに記録され、レプリケーション・ノードは起動に失敗します。この問題が発生する条件としては、複数の異常なレプリケーション・ノードのシャットダウンに伴うシャード間でのパーティション移行などがあります。このバグが発生しても、現在のリリースにアップグレードすれば修正され、データが失われることはありません。
    Exception in thread "main" com.sleepycat.je.EnvironmentFailureException: (JE
    5.0.XX) ...  last LSN=.../... LOG_INTEGRITY: Log information is incorrect,
    problem is likely persistent. Environment is invalid and must be closed.
        at com.sleepycat.je.recovery.RecoveryManager.traceAndThrowException(RecoveryManager.java:2793)
        at com.sleepycat.je.recovery.RecoveryManager.undoLNs(RecoveryManager.java:1097)
        at com.sleepycat.je.recovery.RecoveryManager.buildTree(RecoveryManager.java:587)
        at com.sleepycat.je.recovery.RecoveryManager.recover(RecoveryManager.java:198)
        at com.sleepycat.je.dbi.EnvironmentImpl.finishInit(EnvironmentImpl.java:610)
        at com.sleepycat.je.dbi.DbEnvPool.getEnvironment(DbEnvPool.java:208)
        at com.sleepycat.je.Environment.makeEnvironmentImpl(Environment.java:246)
        at com.sleepycat.je.Environment.(Environment.java:227)
        at com.sleepycat.je.Environment.(Environment.java:170)
        ...
    Caused by: java.lang.NullPointerException
        at com.sleepycat.je.log.entry.LNLogEntry.postFetchInit(LNLogEntry.java:406)
        at com.sleepycat.je.txn.TxnChain.(TxnChain.java:133)
        at com.sleepycat.je.txn.TxnChain.(TxnChain.java:84)
        at com.sleepycat.je.recovery.RollbackTracker$RollbackPeriod.getChain(RollbackTracker.java:1004)
        at com.sleepycat.je.recovery.RollbackTracker$Scanner.rollback(RollbackTracker.java:477)
        at com.sleepycat.je.recovery.RecoveryManager.undoLNs(RecoveryManager.java:1026)
        ... 10 more
    
    [#22052]

  6. RN上のストレージ・エンジン・キャッシュで過剰なメモリーが使用され、キャッシュの退去とI/O増加のためにパフォーマンスが低下するバグが修正されました。この問題が発生するのは、KVStore.storeIteratorまたはKVStore.storeKeysIteratorを使用するときのみでした。[#21973]

パフォーマンスその他の一般的な変更点:

  1. シャードにおけるレプリカは、JEプロパティRepParams.REPLAY_MAX_OPEN_DB_HANDLESを動的に構成するようになります。これは、レプリケーション中にデータベース・ハンドルの保持に使用されるキャッシュのサイズを制御するプロパティです。キャッシュ・サイズは、現在シャードによってホストされているパーティションの数に基づいて動的に決定されます。このキャッシュ・サイズ改善によって、多数のパーティションをホストするシャードの書込みパフォーマンスが向上する可能性があります。[#21967]

  2. クライアントおよびサーバーJARファイルの名前に、リリース・バージョン番号は含まれなくなります。ファイル名は、次のようになります。
    lib/kvstore.jar
    lib/kvclient.jar
    

    この変更により、JARファイルの名前がリリースごとに変わらなくなるため、新しいリリースへの切替えに要する作業負荷が減ります。インストール・ディレクトリの名前には、引き続きリリース・バージョン番号が含まれます。[#22034]


  3. SEVEREレベルのメッセージがログに記録されるようになり、ストレージ・エンジンの平均的なログ・クリーナ(ディスクの再利用)バックログが一定期間で増加すると、管理警告が生成されます。メッセージ・テキストの例は次のとおりです。
    121215 13:48:57:480 SEVERE [...] Average cleaner backlog has grown from 0.0 to
    6.4. If the cleaner continues to be unable to make progress, the JE cache size
    and/or number of cleaner threads are probably too small. If this is not
    corrected, eventually all available disk space will be used.
    
    キャッシュ・サイズを適切に設定してこのような問題を回避する方法の詳細は、管理者ガイドのノード当たりのキャッシュ・サイズの決定に関する項を参照してください。[#21111]

  4. ストレージ・エンジンのログ・クリーナは、アプリケーションが書込み操作を実行していない場合であっても、ログの後半部分を削除するようになります。以前のバージョンでは、前回のアプリケーション書込みより後ろの部分のログを削除することは禁止されていました。ログ・クリーナ・バックログが存在するとき(たとえば、データ・セット・サイズや書込み速度と比較してキャッシュの構成が小さすぎるときなど)には、クリーナが連続的に動作し、ファイルの削除もそれ以降に進むこともできなくなります。[#21069]

  5. NoSQL DB 2.0.23では、R1.2.23に対するパフォーマンス・リグレッションが発生していました。kvstoreクライアント・ライブラリとレプリケーション・ノードが、システムCPU時間を大量に消費していました。このリグレッションは修正されました。[#22096]


11gR2.2.0.23での変更点

新機能:

  1. このリリースでは、デプロイ後にストレージ・ノードをシステムに追加できるようになります。システムのバランスが再調整され、操作を停止せずにデータは新しいノードに再配分されます。詳細は、管理者ガイドの第6章「ストアの構成の決定」を参照してください。
  2. 新しいoracle.kv.lobパッケージにより、音声ファイルや動画ファイルなどのラージ・オブジェクト(LOB)を読み書きできるようになります。一般に、1MBを超えるオブジェクトはすべてLOBとして表すことができます。LOB APIでは、このようなオブジェクトの読取りと書込みにストリーミングAPIを提供することにより、値全体をマテリアライズせずに大きな値にアクセスできます。
  3. C APIが追加されました。実装にはJava JNIが使用されるため、クライアントでJava仮想マシンが稼働している必要があります。これは別途ダウンロードして利用できます。
  4. 新しいremove-storagenodeプランを追加しました。このコマンドは、NoSQL Databaseコンポーネントをホストしていないストレージ・ノードをシステムのトポロジから削除します。これが役に立つ2つの例を次に示します。
    ストレージ・ノードが誤って構成されており、デプロイできない場合。
    ストレージ・ノードが以前はNoSQL Databaseの一部だったが、migrate-storagenodeコマンドですべてのコンポーネントがそこから移行され、ストレージ・ノードの停止が必要になった場合。
    [#20530]
  5. ストレージ・ノードに関して、次のような追加の物理構成情報を指定する機能が追加されました。 この情報は、システムがリソース割当てと消費についてさらにインテリジェントな選択を行うために使用されます。パラメータの設定および使用方法については、管理者ドキュメントを参照してください。[#20951]
  6. Avroサポートを追加しました。キー/値ペアの値は、Avroバイナリ形式で格納できるようになります。Avroスキーマは、格納されるデータのタイプごとに定義されます。Avroスキーマは、データを効率的かつコンパクトにシリアライズし、データがスキーマに準拠していることを保証して、スキーマの経時変化にあわせて自動的なデータの発展を実行します。AvroデータをPOJO (Plain Old Java Object)、JSONオブジェクト、または汎用のMap的なデータ構造を表すことのできるバインディングが導入されています。詳細は、スタート・ガイド第7章「Avroスキーマ」第8章「Avroバインディング」を参照してください。oracle.kv.avroパッケージについては、Javadocで説明されています。Avro形式を使用することをお薦めします。今後のNoSQL DBは、追加の機能を導入するためにAvroを利用する予定です。[#21213]
  7. Hadoop KVInputFormatクラスのサポートを追加しました。新しいoracle.kv.hadoop.KVAvroInputFormatクラスは、AvroのIndexedRecordをコール元に返します。このクラスをOracle Loader for Hadoopと組み合せて使用すると、HDFSにデータを格納するMap-Reduceジョブを暫定的に使用することなく、OLHを使用してNoSQL Databaseから直接データを読み込むことができます。[#21157]
  8. Oracle Databaseの外部表を使用してOracle NoSQL Databaseのレコードをアクセスできる機能を追加しました。詳細は、 oracle.kv.exttabパッケージのJavadocと、 examples/externaltablesディレクトリにある"cookbook"サンプルを参照してください。[#20981] Javadoc

APIの変更点:

パフォーマンスその他の一般的な変更点:

  1. 次のメソッドが追加されます。 これにより、クライアントはクライアント要求時のソケット・タイムアウトを構成できるようになります。詳細はJavadocを参照してください。

    前述のAPIをクライアントで使用するには、このリリースに付属しているアップグレード・ドキュメントの説明に従って、R1のインストールでストレージ・ノード上のソフトウェアがアップグレードされていることを確認する必要があります。[#20997]

  2. NoSQL Databaseによって作成されたソケットに関連するバックログを制御する新しいサービス・パラメータが追加されました。これらは、レプリケーション・ノードとストレージ・ノードの監視、管理、レジストリ・ハンドラの各インタフェースで制御できます。パラメータは、rnRHSOBacklog (デフォルトは1024)、rnMonitorSOBacklog (デフォルトは0)、rnAdminSOBacklog (デフォルトは0)、rnAdminSOBacklog (デフォルトは0)、snAdminSOBacklog (デフォルトは0)、snMonitorSOBacklog (デフォルトは0)およびsnRegistrySOBacklog (デフォルトは1024)です。[#21322]
  3. 以前のバージョンでは、ターゲットのKeyオブジェクトより小さいメジャーまたはマイナー・パスを含む引数を指定してKey.isPrefixをコールすると、特定のケースでIndexOutOfBoundsExceptionが発生していました。これは修正されました。
  4. KeyRange()コンストラクタは、最初のKeyが最後のKeyがより小さいかどうかをチェックします。これは最初と最後の両方が指定されている場合であり、指定されていない場合にはIllegalArgumentExceptionがスローされます。KeyRangeにも、KeyRangeインスタンスのエンコードとデコードに使用するtoString()fromString()の2つのメソッドがあります。これはKeyの同じメソッドに似ています。[#21470]

ユーティリティの変更点:

  1. CLIには多くのコマンドが新しく追加されています。詳細は、管理者ガイド付録A「コマンドライン・インタフェース(CLI)のコマンド・リファレンス」を参照してください。
  2. 管理コンソールは管理専用になります。
  3. CLIの管理コマンドは、トポロジ表示に使用されるIDにコンポーネントIDが一致するように変更されました。以前のバージョンでは、データセンター、ストレージ・ノード、管理インスタンス、レプリケーション・ノードがそれぞれ名前のみで識別されていました。たとえば、ストレージ・ノード17をストレージ・ノード・プールに追加する構文、または指定したレプリケーション・ノードのパラメータを表示する構文は、次のとおりでした。
    joinPool myStorageNodePool 17
    show repnode-params 5,3
    
    データセンターは、#またはdc#と表せるようになります。
    管理インスタンスは、#またはadmin#と表せます。
    ストレージ・ノードは、#またはsn#と表せます。
    レプリケーション・ノードは、groupNum,nodeNumまたはrgX-rnYと表せるようになります。

    上に示したコマンドは現在も有効ですが、次のように表すこともできます。

    joinPool myStorageNodePool sn17
    show repnode-params rg5-rn3
    
    [#21099]

ドキュメント、インストール、統合:

  1. Key.createKeyメソッドのJavadocが更新され、パラメータとして渡されるListインスタンスはメソッドのコール後にKeyオブジェクトによって所有されるという警告が追記されました。予期しない結果を避けるために、これは変更しないでください。[#20530]


11gR2.1.2.123での変更点

バグ修正:

  1. 以前のバージョンでは、管理サービスを実行している以外のノードでレプリケーション・ノード・パラメータを変更しようとしてchange-repnode-paramsプランを実行すると、エラーになりました。この操作が正常に処理されるようになります。[#20901]

  2. 新しいストレージ・ノードをデプロイしようとしてdeploy-storage-nodeプランで問題が発生すると、問題のあるストレージ・ノードがストアに残っていました。そのため、ユーザーは問題のあるストレージ・ノードを手動で削除するか、問題を修正してプランを再試行する必要がありました。便宜上、deploy-storage-nodeプランは現在、エラー発生時にクリーン・アップされるようになり、問題のあるストレージ・ノードは残らなくなっています。[#20530]

パフォーマンスその他の一般的な変更点:

  1. コマンドライン・インタフェースで、snapshot createコマンドの速度が大幅に向上しました。以前のバージョンでは、大量のデータがあるストアで実行すると数分間かかっていました。これが秒単位に短縮されています。[#20772]

ユーティリティの変更点:

  1. kvliteを起動して制御コマンドを実行する2つのスクリプト、bin/run-kvlite.shおよびbin/kvctlは、java -jar lib/kvstore-M.N.P.jarコマンドに置き換えられます。これにより、Windowsを含むすべてのJavaプラットフォームの移植性が実現します。2つのスクリプトは非推奨となりましたが、少なくとも1リリース・サイクルの間はサポートされます。

    古いスクリプト・コマンドから新しい-jarコマンドへの変換は、次のとおりです。

    古いスクリプト・コマンド新しい-jarコマンド
    bin/run-kvlite.sh args... java -jar lib/kvstore-M.N.P.jar kvlite args...
    bin/kvctl command args... java -jar lib/kvstore-M.N.P.jar command args...

    新旧のコマンドには、注意が必要な相違点がいくつかあります。