第2章 新機能および改良された機能
2.1. データコンテナーの改良
JBoss Data Grid 7.2 のデータコンテナーには、TinyLFU
と呼ばれる新しいエビクションストラテジーや OffHeap
と呼ばれる新しいストレージタイプなどを含む、多くの変更が追加されました。データコンテナーは、新しい <memory>
要素を使用して設定され、この要素は非推奨となった従来の <eviction>
および <storeAsBinary>
要素を統合します。現在のデータコンテナーに関する詳細は、『Administration and Configuration Guide』の「Set Up JVM Memory Management」を参照してください。
2.2. パーティション処理の改良
JBoss Data Grid 7.2 のパーティション処理は大幅に更新され、異なるパーティション処理ストラテジーを設定する機能、新しい競合マネージャー、競合を解決する方法のカスタマイズに使用できる複数のマージポリシーなどが含まれます。JBoss Data Grid では、これまでパーティション処理を有効または無効にすることのみが可能でした。この更新により、パーティション処理の動作を細かく調整できるようになりました。更新の詳細については、『Administration and Configuration Guide』の「Network Partition Recovery」を参照してください。
2.3. Hot Rod C# クライアントの SASL 認証
JBoss Data Grid 7.2 では、C# Hot Rod クライアントとサーバー間の SASL 認証をサポートするようになりました。JDG はこれまで、ネイティブ Java Hot Rod クライアントでの SASL 認証のみをサポートしていました。C# クライアントは、PLAIN、DIGEST-MD5、および EXTERNAL セキュリティーメカニズムをサポートします。詳細は『Developer Guide』の「Securing Interfaces」を参照してください。
2.4. Hot Rod C++ クライアントの SASL 認証
JBoss Data Grid 7.2 では、C++ Hot Rod クライアントとサーバー間の SASL 認証をサポートするようになりました。JDG はこれまで、ネイティブ Java Hot Rod クライアントでの SASL 認証のみをサポートしていました。C++ クライアントは、PLAIN、DIGEST-MD5、EXTERNAL、および GSSAPI (GSSAPI は Windows ではサポートされません) セキュリティーメカニズムをサポートします。詳細は『Developer Guide』の「Securing Interfaces」を参照してください。
2.5. Protostream 4.2.0
JBoss Data Grid 7.2 には新たに ProtoStream 4.2.0 が導入されました。ProtoStream は、Google の Protobuf データ形式をベースにしたシリアライズライブラリーです。
2.6. Hibernate Search 5.7.3.Final および Apache Lucene 5.5.5
JBoss Data Gird 7.2 には新たに Hibernate 5.7.3.Final および Apache Lucene 5.5.5 が導入されました。これらは、分散グリッドに格納されたデータセット全体でクエリーを実行するため、JDG のクエリーモジュールによって使用されます。また、JDG は Hibernate Search のディレクトリープロバイダーの役割も果たします。
2.7. EAP の統合
JBoss Data Grid 7.2 では、新しいサブシステムを利用してキャッシュを standalone.xml
に設定できるようになりました。この方法を使用すると、キャッシュのライフサイクルはアプリケーションに拘束されません。EAP の内部 Infinispan モジュールをインジェクトする方法と同様に、キャッシュを @Resource
アノテーションでインジェクトすることもでき、これはサポートされます。詳細は、『Developer Guide』の「Integration with EAP」を参照してください。
2.8. Spark コネクターの改良
JBoss Data Grid 7.2 には、Spark 1.6.x および 2.x をサポートし、それにより Scala 2.10.x および 2.11.x をサポートする、新バージョンの Apache Spark コネクターが導入されました。このコネクターは、改善された設定、クエリー String による簡単な絞り込み、改善されたプロトコルバッファーのサポート、Dataset API の新規サポートなど、多くの改良が加えられています。詳細は『Developer Guide』の「Integration with Apache Spark」を参照してください。
2.9. OpenShift イメージの同時リリース
JBoss Data Grid 7.2 は、コンテナー化されていないプラットフォームで使用される標準の zip アーカイブがリリースされると同時にバージョン 7.2 の OpenShift イメージをリリースします。JBoss Data Grid 7.2 の OpenShift イメージは、Red Hat Container Catalog からダウンロードできます。
2.10. クラスター化カウンター
JBoss Data Grid 7.2 には、クラスター化カウンターのサポートが追加されました。クラスター化カウンターは、Red Hat JBoss Data Grid クラスターのノードすべてで分散および共有され、オブジェクトの数を記録できます。クラスター化カウンターは、counter
API より Red Hat JBoss Data Grid のライブラリーモードおよびリモートクライアントサーバーモードで利用できます。詳細は、『開発ガイド』の「Clustered Counters」を参照してください。
2.11. クラスター化ロック
JBoss Data Grid 7.2 には、クラスター化ロックのサポートが追加されました。クラスター化ロックは、Red Hat JBoss Data Grid クラスターのノードすべてで分散および共有されるデータ構造です。クラスター化ロックによって、クラスター内のノード間で同期化されるコードを実行できます。クラスター化ロックは、lock
API より Red Hat JBoss Data Grid のライブラリーモードでのみ利用できます。詳細は、『開発ガイド』の「Clustered Locks」を参照してください。
2.12. マルチマップキャッシュ
JBoss Data Grid 7.2 には、キーを値にマップするキャッシュで、各キーに複数の値を含めることができる MultimapCache
が新たに導入されました。これは、現在ライブラリーモードでのみ機能します。詳細は『Developer Guide』の「The Multimap Cache」を参照してください。
2.13. クラスター全体の動的キャッシュ作成
JBoss Data Grid 7.2 は、動的なキャッシュの作成をサポートするようになりました。ライブラリーモードまたは Hot Rod クライアントから動的にキャッシュを作成するには、createCache()
メソッドを使用します。たとえば、ライブラリーモードにてクラスターに参加する新しいノード上でキャッシュを動的に作成するには、manager.administration().createCache("newCacheName", "newTemplate")
を使用します。詳細は、『Developer Guide』の「Library Mode」または「Remote Client-Server Mode」を参照してください。
2.14. ブロードキャストクエリー
ブロードキャストクエリー機能は、各ノードが書き込み中に独自のデータをインデックス化し、クエリー時に各ノードにクエリーを送信 (ブロードキャスト) できるようにします。各ノードの結果は、呼び出し元に返される前に組み合わされます。これは、転送されるデータの量がクエリー自体で結果であるため、大きなインデックスを持つ DIST キャッシュに適しています。詳細は、『Developer Guide』の「Broadcast Queries」を参照してください。
2.15. 設定可能なデータ形式
JBoss Data Grid では、REST API を介してキャッシュしたデータとの相互運用が可能です。7.2 では、データ形式を定義するメディアタイプを設定できるようになりました。一部の例外を除き、デフォルトのメディアタイプは application/octet-stream
になります。
本リリースの JBoss Data Grid では、JSON ドキュメントを格納、読み出し、および検索できる application/json
のサポートも追加されました。さらに、JBoss Data Grid は JSON 形式の Ickle クエリーを使用する、REST インターフェースを介したデータのクエリーをテクノロジープレビューとして提供します。
サポートされるメディアタイプに関する詳細は、『Developer Guide』の「Using the REST Interface」を参照してください。