11gR2.2.0.23での変更点

Oracle NoSQL Database 11gR2.2.0.23で次の変更が行われました。

新機能

  1. このリリースでは、デプロイ後にストレージ・ノードをシステムに追加できるようになります。システムのバランスが再調整され、操作を停止せずにデータは新しいノードに再配分されます。詳細は、『管理者ガイド』のストアの構成の決定を参照してください。

  2. 新しいoracle.kv.lobパッケージにより、音声ファイルや動画ファイルなどのラージ・オブジェクト(LOB)を読み書きできるようになります。一般に、1MBを超えるオブジェクトはすべてLOBとして表すことができます。LOB APIでは、このようなオブジェクトの読取りと書込みにストリーミングAPIを提供することにより、値全体をマテリアライズせずに大きな値にアクセスできます。

  3. C APIが追加されました。実装にはJava JNIが使用されるため、クライアントでJava仮想マシンが稼働している必要があります。これは別途ダウンロードして利用できます。

  4. 新しいremove-storagenodeプランを追加しました。このコマンドは、NoSQL Databaseコンポーネントをホストしていないストレージ・ノードをシステムのトポロジから削除します。これが役に立つ2つの例を次に示します。[#20530]

    • ストレージ・ノードが誤って構成されており、デプロイできない場合。

    • ストレージ・ノードが以前はNoSQL Databaseの一部だったが、migrate-storagenodeコマンドですべてのコンポーネントがそこから移行され、ストレージ・ノードの停止が必要になった場合。

  5. ストレージ・ノードに関して、次のような追加の物理構成情報を指定する機能が追加されました。

    • 容量 - ストレージ・ノードでホストできるレプリケーション・ノードの数

    • CPUの数

    • 使用するメモリー量

    • レプリケーション・ノードに使用する特定のディレクトリ・パス(マウント・パス)

    この情報は、システムがリソース割当てと消費についてさらにインテリジェントな選択を行うために使用されます。パラメータの設定および使用方法については、管理者ドキュメントを参照してください。[#20951]

  6. Avroサポートを追加しました。キー/値ペアの値は、Avroバイナリ形式で格納できるようになります。Avroスキーマは、格納されるデータのタイプごとに定義されます。Avroスキーマは、データを効率的かつコンパクトにシリアライズし、データがスキーマに準拠していることを保証して、スキーマの経時変化にあわせて自動的なデータの発展を実行します。AvroデータをPOJO (Plain Old Java Object)、JSONオブジェクト、または汎用のMap的なデータ構造を表すことのできるバインディングが導入されています。oracle.kv.avroパッケージについては、Javadocで説明されています。Avro形式を使用することをお薦めします。今後のNoSQL DBは、追加の機能を導入するためにAvroを利用する予定です。[#21213]

  7. Hadoop KVInputFormatクラスのサポートを追加しました。新しいoracle.kv.hadoop.KVAvroInputFormatクラスは、AvroのIndexedRecordsをコール元に返します。このクラスをOracle Loader for Hadoopと組み合せて使用すると、HDFSにデータを格納するMap-Reduceジョブを暫定的に使用することなく、OLHを使用してNoSQL Databaseから直接データを読み込むことができます。[#21157]

  8. Oracle Databaseの外部表を使用してOracle NoSQL Databaseのレコードをアクセスできる機能を追加しました。詳細は、oracle.kv.exttabパッケージのJavadocと、cookbookサンプルを参照してください。[#20981]

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

  1. 次のメソッドが追加されます。

    • KVStoreConfig.setOpenTimeout()

    • KVStoreConfig.getOpenTimeout()

    • KVStoreConfig.setReadTimeout()

    • KVStoreConfig.getReadTimeout()

    これにより、クライアントはクライアント要求時のソケット・タイムアウトを構成できるようになります。詳細は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には多くのコマンドが新しく追加されています。詳細は、管理者ガイドコマンドライン・インタフェース(CLI)のコマンド・リファレンスを参照してください。

  2. 管理コンソールは管理専用になります。

  3. CLIの管理コマンドは、トポロジ表示に使用されるIDにコンポーネントIDが一致するように変更されました。以前のバージョンでは、データセンター、ストレージ・ノード、管理インスタンス、レプリケーション・ノードがそれぞれ名前のみで識別されていました。たとえば、ストレージ・ノード17をストレージ・ノード・プールに追加する構文、または指定したレプリケーション・ノードのパラメータを表示する構文は、次のとおりでした。[#21099]

    joinPool myStorageNodePool 17
    show repnode-params 5,3
    • データセンターは、#またはdc#として表現できるようになりました

    • 管理インスタンスは、#またはadmin#として表現できるようになりました

    • ストレージ・ノードは、#またはsn#として表現できるようになりました

    • レプリケーション・ノードは、groupNum、nodeNumまたはrgX-rnYとして表現できるようになりました

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

    joinPool myStorageNodePool sn17
    show repnode-params rg5-rn3

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

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