12cR1.3.0.5での変更点

Oracle NoSQL Database 12cR1.3.0.5で次の変更が行われました。

新機能

  1. 一連のデータ型およびこれらのデータ型を使用した表形式データ・モデルが含まれる新しいクライアント・インタフェースが追加されました。この表形式データ・モデルにより、表内のフィールドで定義されている2次索引がサポートされます。このモデルについては、Tableスタート・ガイドで説明されています

    表および索引は、管理CLIを使用して定義され、プログラムによるAPIを介してアクセスされます。データCLIも、表および索引に対する操作を実行するように拡張されました。APIについてはOracle NoSQL Database Javadocで説明されており、主にoracle.kv.tableパッケージ内にあります。

    NoSQL DBリリース2で作成されたデータが、準拠するAvroスキーマを使用して作成されている場合、そのデータをオーバーレイする表を定義できます。このオーバーレイは、準拠するリリース2のデータに2次索引を作成するために必要です。

    既存のキー/値インタフェースは引き続き使用可能です。

  2. レコードに対して2次索引を定義できるようになりました。表に関する前述の変更ログ・エントリを参照してください。特定のレコードの索引エントリには、対応するプライマリ・レコードとのトランザクション一貫性があります。索引の反復操作は、新しい表APIの一部です。索引スキャン操作を使用すると、RAW索引に対して3通りの方法(正順、逆順および順序付けなし)で反復できるようになります。索引に対して完全一致および範囲スキャンを定義できます。索引は、単一フィールドに対して定義することも、表内の複数のフィールドに対する複合索引として定義することもできます。

  3. ユーザー名/パスワード認証およびセキュアなネットワーク通信のサポートが追加されました。この機能を必要としない既存のアプリケーションはこの影響を受けません。ただし、必須の引数(-store-security)が新しく追加されている、makebootconfigに対する変更は除きます。新機能の使用を希望するユーザーは、次の変更領域に注意する必要があります。

    • makebootconfigユーティリティに、必須コマンドライン引数-store-securityが用意されました。これは、新しいKVStoreデプロイメントに対するセキュリティを有効化するのに使用されます。また、-store-securityフラグは、非セキュアなデプロイメントを有効化するためにも使用され、実際にそのような場合にも必須となります(-store-security none)。

    • 新しいsecurityconfigツールが追加されました。これには、次の機能があります。

      • セキュリティ構成の作成

      • パスワード・ストアの作成/変更

      • 既存の非セキュアKVStoreに対するセキュリティの有効化

      • セキュリティ保守タスクの実行

    • KVStoreConfigクラスに対する追加メソッド:

      • setSecurityProperties()

      • getSecurityProperties()

    • 認証をサポートするKVStoreFactoryクラスに対する追加メソッド:

      • KVStoreFactory.getStore(KVStoreConfig、LoginCredentials、ReauthenticateHandler)

      この新しいメソッドでは、新しいインタフェースが使用されます

      • LoginCredentials

      • ReauthenticateHandler

      これは、新しいクラスPasswordCredentialsの場合も同様です。

    • KVStoreインタフェースに対する追加メソッド:

      • login()

      • logout()

    • 新しい例外クラス:

      • UnauthorizedException

      • AuthenticationFailureException

      • AuthenticationRequiredException

    ユーザーは、セキュリティ・プロパティ・ファイルについてもよく理解している必要があります。これらのファイルは、セキュアなストアに対してKVStoreコマンドライン・ユーティリティ・プログラムを使用する際に必要であり、セキュアなストアに対してアプリケーションを実行する際にも役立つ場合があります。

    この機能は、『Oracle NoSQL Databaseセキュリティ・ガイド』や管理者ガイドおよび製品のJavadocでさらに詳しく説明されています。

  4. 管理CLIが、データ・センターに言及するのに新しい用語を使用するように変更されました。データ・センターはゾーンと呼ばれるようになりました。新しい用語は、これらのノード・グループが物理データ・センターと必ずしも一致するとは限らないことを明らかにすることを目的としています。ゾーンとは、相互に適切なネットワーク接続を維持し、他のゾーンのノードから物理的にある程度分離されているノードのコレクションです。この物理的な分離とは、各ゾーンが異なる物理データ・センター・ビルに配置されていることを意味する場合がありますが、特定のデプロイメントに応じて異なるフロア、ルーム、ポッドまたはラックを表す場合もあります。

    "datacenter"という単語が含まれるコマンドは非推奨となり、"zone"という単語を使用したコマンドに置き換わりました。このリリースでは、以前のコマンドもそのまま機能します。新しいコマンドは、次のとおりです。

    • plan deploy-zone

    • plan remove-zone

    • show zones

    ゾーンを指定するコマンド・フラグは、ゾーンIDの場合は-znに、ゾーン名の場合は-znnameに変更されました。以前の-dcおよび-dcnameフラグは非推奨となりましたが、このリリースではそのまま機能します。また、ゾーンIDはzn接頭辞を使用して指定できるようになりましたが、以前のdc接頭辞も現在サポートされています。

    管理GUIが、この新しい「ゾーン」という用語を使用するように変更されました。[#22878]

  5. 現在、ゾーンには2つのタイプがあります。 プライマリ・ゾーンには、選択可能なノードが含まれます。これは、マスターまたはレプリカとして機能し、マスター選択に参加できます。以前のリリースで作成されたゾーン(またはデータセンター)はすべてプライマリ・ゾーンであり、新しいゾーンはデフォルトではプライマリ・ゾーンとして作成されます。セカンダリ・ゾーンには、新しいセカンダリ・ノード・タイプのノードが含まれます。これは、レプリカとしてのみ機能し、マスター選択には参加しません。セカンダリ・ゾーンを使用して、離れた場所で使用可能なデータのコピーを作成したり、データの余分なコピーを維持し、冗長性や読取り能力を向上させることができます。[#22483]

  6. show planコマンドで、移行の完了時間の見積りが示されるようになりました。次に例を示します。[#22183]

    Plan Deploy Topo (12)
    State:                 RUNNING
    Attempt number:        1
    Started:               2014-01-14 17:35:09 UTC
    Ended:                 2014-01-14 17:35:27 UTC
    Total tasks:           27
     Successful:           12
     Incomplete:           15
    Incomplete tasks
       3 partition migrations queued
       1 partition migrations running
       11 partition migrations succeeded, avg migration time = 550164 ms.
    Estimated completion:  2014-01-14 19:57:37 UTC
  7. このリリースで、新しい読取り一貫性オプションが追加されました。oracle.kv.Consistency.NONE_REQUIRED_NO_MASTERを使用して、目的の読取り操作が必ずマスターではなくレプリカによって処理されるよう指定できるようになりました。読取りの負荷が高いアプリケーション(分析など)の場合、マスターに対する負荷を軽減するために、読取り要求を分離し、これらがマスターではなくレプリカに対してのみ実行されるようにした方がよい場合があります。この種の読込みの分離を実現する上で望ましいメカニズムが、新しいセカンダリ・ゾーン機能です。この目的のためにはこの機能を採用することをお薦めします。ただし、セカンダリ・ゾーンの使用が望ましくない場合や現実的でない場合は、oracle.kv.Consistency.NONE_REQUIRED_NO_MASTERを使用すると、セカンダリ・ゾーンの場合に必要となる可能性があるリソースの追加なしで同様の効果を上げることができます。[#22338]

  8. 次のメソッドが追加されました。

    • KVStoreConfig.setReadZones()

    • KVStoreConfig.getReadZones()

    これらのメソッドを使用すると、指定したゾーン内にあるノードについてのみ読取り操作が実行されるよう要求できるようになります。

  9. show plansコマンドが変更され、プラン履歴の範囲を指定できるようになりました。show plansでは、引数なしで、最近作成された10のプランのみが表示されるようになりました。ただし、新しい引数を使用して、作成時間やプランID別に範囲を選択することもできます。すべてのオプションの一覧を確認するには、コマンドshow plans -helpを発行します。

  10. makebootconfigユーティリティに、新しい-runadminコマンドライン引数がオプションとして用意されました。これを使用すると、-adminの値が0に設定されている場合でもSNAでブートストラップ管理を強制的に起動できます。

    管理CLI内のplan deploy-adminのオプション-portが変更され、管理Webサービスの起動を制御できるようになりました。デプロイで-portが0に設定されている場合、管理のWebサービスは起動されません。

    ユーザーは、管理CLIのplan change-paramコマンドを介してデプロイメント後に管理のHTTPポートを変更し、管理によるWebサーバーの実行の有無に関する設定を変更することもできます。[#22344]

  11. plan change-paramコマンドが変更され、単一管理サービスのパラメータを変更できるようになりました。[#22244]

  12. NoSQLトポロジ情報は管理サービスとストレージ・ノードの両方に格納されますが、deploy-topologyやmigrate-snなどのトポロジ変更プランが完了前に取り消されると、この情報の一貫性がなくなる可能性があります。不整合は、ターゲット・トポロジの再デプロイによって修復できます。このリリースでは、トポロジの不整合を修復する別の方法としてplan repair-topologyコマンドも用意されています。verify configurationコマンドでは、repair-topologyの使用が役立つタイミングに関する推奨が生成されるようになりました。[#22753]

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

  1. makebootconfigコマンドで、既存の構成ファイルの上書きが拒否されたときにメッセージが出力されるようになりました。[#23012]

  2. plan remove-adminで、実行されていないストレージ・ノードによってホストされている管理を削除できるようになりました。[#23061]

  3. ストレージ・ノードのconfig.xmlファイル内の管理セクションが重複する原因となる場合があった不具合を修正しました。そのため、このような不規則な構成がある管理サービスに対してplan change-parametersコマンドを適用しても、予期せずこのコマンドの効果がない可能性があります。この不具合は、すでにデプロイされている管理をデプロイしようとしたときに発生する可能性がありますが、失敗したplan migrate-storagenodeコマンドを再実行したときに発生する可能性もあります。[#23152]

  4. 新しいレプリケーション・ノードの作成時にtopology redistributeコマンドでストレージ・ディレクトリの設定が無視される原因であった問題を修正しました。[#23161]

  5. 以前は、レプリケーション・ノードのメトリック収集期間(statsInterval)中にアクティビティがなかった場合、前の期間のメトリック値がJMXおよびSNMPによってレポートされていました。この動作は変更され、すべての間隔でメトリックが更新されるようになりました。[#22842], [#22537]

  6. NoSQL DBによってマスター・アイデンティティが自動的に調整されるため、マスター・ノードがストア全体にわたって配分され、最適なパフォーマンスが得られます。マスターのバランス調整が複数のゾーンにわたって実行される妨げとなっていた問題を修正しました。[#22857]

  7. InputStream.skipに対するコールによってゼロ以外の値が返されるかぎり、入力ストリームを開始位置に配置するためにこのコールを必要に応じて繰り返すようLOB実装を変更しました。コールによってストリームが必要な開始位置に移動されない場合、IllegalArgumentExceptionがスローされます。

ユーティリティの変更点

  1. 管理コマンドライン・インタフェース(CLI)とデータ・コマンドライン・インタフェースが単一プログラムにマージされました。マージされたCLIの使用方法には、最も古い使用方法との互換性がありますが、管理操作、データ操作あるいはその両方に対して有効化するための追加オプションが用意されています。この変更により、データ操作用としてkvstore.jarの使用が必要となりました。前のリリースでは、データCLIには、kvclient.jarに依存するkvcli.jarのみが必要でした。

  2. CLIが、表、索引、セキュリティ情報およびゾーンの管理に必要なコマンドにより拡張されました。

ドキュメントの変更点

  1. 表形式データ・モデルおよび2次索引の導入により、新しいTable APIスタート・ガイドが追加されました。

  2. 新しいセキュリティ機能の導入により、新しいセキュリティ・ガイドが追加されました。

パッケージの変更点

  1. Oracle NoSQL Databaseに同梱されているAvroおよびJacksonライブラリのバージョンが最新のAvro 1.7.6およびJackson 1.9.3にアップグレードされました。これらのバージョンは以前のAPIバージョンと互換性があります。