1.12. Data Grid 8.4.0 の新機能
Data Grid 8.4 では、ユーザービリティーとパフォーマンスが向上し、セキュリティーが強化されています。新機能を確認してください。
Jakarta EE API
Data Grid 8.4 は、Jakarta EE 9+ ベースの jar を配布します。アプリケーションで Jakarta 固有の依存関係が必要な場合は、アーティファクトに -jakarta を追加します。次に例を示します。
pom.xml
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-client-hotrod-jakarta</artifactId>
</dependency>
Jakarta EE の詳細は、About Jakarta EE を参照してください。
MemcachedDecoder のパフォーマンスの向上
MemcachedDecoder は Netty スレッドをブロックしなくなりました。スレッドプールが使い果たされたときのデッドロックを防ぎます。
1.12.1. Hot Rod クライアント リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod は、カスタムバイナリー TCP プロトコルで、異なるプログラミング言語で、クライアントアプリケーションに高パフォーマンスでデータアクセスできるようにします。
application/x-protostream を使用したクエリーのサポート
Data Grid 8.4 の Hot Rod Node.js クライアントは、application/x-protostream メディアタイプを使用したクエリーのサポートを追加します。Hot Rod JS クライアントを設定して、キャッシュ内の値に application/x-protostream メディアタイプを指定し、それらに対してクエリーを実行できるようにします。
JS クライアントでサポートされているすべての Hot Rod 操作に application/x-protostream メディアタイプを使用できるようになりました。詳細は、Hot Rod Node.JS クライアントガイド を参照してください。
クラスターごとのクライアントインテリジェンス設定
複数の Data Grid クラスターを使用するように Hot Rod クライアントを設定すると、クラスターごとに異なるクライアントインテリジェンスを使用できます。
詳細は、Hot Rod Java クライアントガイド を参照してください。
1.12.2. Data Grid Server リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Server は専用の Java 仮想マシン (JVM) で実行され、リモートキャッシュ用にスケーラブルでフォールトトレラントなクラスターを提供します。
マイクロメーターのメトリクス
Data Grid 8.4 は、メトリクスを収集するために Micrometer ライブラリーを使用します。Data Grid Server は、metrics エンドポイント経由で統計を公開します。Prometheus などの任意の監視ツールを使用して統計を収集できます。Micrometer メトリクスは、MicroProfile メトリクスの SmallRye Metrics 実装を置き換えます。
状態遷移操作中のメトリックの改善
クラスタートポロジーが変更されると、Data Grid はセグメント数とトランザクションセグメント数のメトリックを公開します。Data Grid は、REST API および JMX API と互換性のある時間メトリクスを生成します。
RESP プロトコルエンドポイント
Data Grid サーバーには、RESP3 プロトコルを実装する実験的なモジュールが含まれています。RESP エンドポイントを使用すると、Redis クライアントは、Data Grid でサポートされている 1 つ以上の RESP サーバーに接続し、キャッシュ操作を実行できます。
Data Grid 8.4 は、キャッシュ操作に通常使用される Redis コマンドのサブセットをサポートします。サポートされているコマンドのリストについては、Data Grid での RESP プロトコルエンドポイントの使用 に関するドキュメントを参照してください。Data Grid チームは、後続のリリースで追加のコマンドを実装する予定です。
RESP プロトコルエンドポイントは、テクノロジープレビュー機能として利用できます。
動的なロールベースのアクセス制御 (RBAC)
ロールベースアクセス制御 (RBAC) 機能では、さまざまなパーミッションレベルを使用して、Data Grid とのユーザーの対話を制限します。プログラムによって、または Data Grid CLI および Data Grid Console を使用して、ユーザーのロールを変更し、異なる権限を割り当てることができます。
詳細は ロールベースのアクセス制御によるセキュリティー承認 を参照してください。
マスクされた外部認証情報のサポート
Data Grid Server では、マスクされたパスワードと外部コマンドを使用して、パスワードを Data Grid Server 設定に追加できます。
JVM ヒープダンプを生成するオプション
JVM ヒープ上にあるすべてのライブオブジェクトのダンプを生成できます。Data Grid は、サーバーのデータディレクトリーに HPROF 形式のヒープダンプファイルを生成し、JSON 形式のファイルのフルパスで応答します。
1.12.3. Data Grid コンソール リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Console は、リモートキャッシュを監視および管理するためのグラフィカルユーザーインターフェイスであり、8.4 では以下の機能と拡張機能が含まれています。
キャッシュ作成ウィザード
キャッシュ設定 タブを開き、Data Grid Console ウィザードに従って、キャッシュの作成と設定のプロセスをガイドします。ウィザードには、キャッシュを作成し、Data Grid の機能と機能 (インデックス作成、セキュリティー、永続性など) を有効にするのに役立つ手順とツールヒントが含まれています。すべての手順を完了すると、設定を JSON、YAML、または XML 形式でダウンロードして、ファイルを再利用できます。
キャッシュ分散統計
Data Grid コンソールでは、Cache details ページに Metrics タブが導入されています。ノードごとのエントリー数やメモリー使用量など、ノードのデータを表示およびフィルタリングできます。
1.12.4. クエリー API リンクのコピーリンクがクリップボードにコピーされました!
Data Grid を使用すると、キャッシュをインデックス化し、Ickle クエリー言語で関連付けまたはフルテキストクエリーを実行できます。
Hibernate ORM 6 のサポート
Data Grid の Hibernate ORM 2 次キャッシュ (2LC) 実装は、Hibernate 6 で動作するようにアップグレードされました。
次の依存関係を追加します。
pom.xml
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-hibernate-cache-v60</artifactId>
<version>${version.infinispan}</version>
</dependency>
Jakarta EE 移行のため、Data Grid 8.4 は Hibernate 5 をサポートしていません。
1.12.5. Data Grid のネイティブインデックス化のアノテーション リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、新しい索引付けアノテーション @Basic、@Keyword、@Text、および Embedded が導入されています。これらの新しいアノテーションは Hibernate Search アノテーションに取って代わりました。つまり、Java クラスにリモートキャッシュ用の @ProtoDoc アノテーションを付ける必要がなくなりました。
新しいネイティブインデックスアノテーションを使用すると、エンティティーに直接アノテーションを付けることができます。さらに、これらのアノテーションは、埋め込みクエリーとリモートクエリーの両方で同じ方法で使用できます。
新しい注釈のそれぞれは、エンティティーがどのようにインデックス付けされるかをさらに説明する一連の属性をサポートしています。
Data Grid のインデックス化のアノテーション
- @Basic
-
このアノテーションは、テキストの変換や処理を必要としない数値と短い
Stringsに使用します。sortable、searchable、およびprojectable属性をサポートします。 - @Keyword
-
このアノテーションを
Stringsに使用します。searchable、projectable、sortable、およびnormalizerの属性をサポートしています。 - @Text
-
サイズの大きい
Stringにはこのアノテーションを使用します。searchable、projectable、およびAnalyzer属性をサポートします。 - @Embedded
-
このアノテーションを埋め込みインデックスに使用して、エンティティー構造を指定します。
NESTED構造は元のオブジェクト関係構造を保持しますが、FLATTENED構造 は親エンティティーのリーフフィールドを複数値にします。
Poem.java
@Indexed
public class Poem {
private Author author;
private String description;
private Integer year;
@Embedded(includeDepth = 2, structure = Structure.NESTED)
public Author getAuthor() {
return author;
}
@Text(projectable = true, analyzer = "whitespace", termVector = TermVector.WITH_OFFSETS)
public String getDescription() {
return description;
}
@Basic(projectable = true, sortable = true, indexNullAs = "1800")
public Integer getYear() {
return year;
}
}
インデックス起動モード
インデックスがキャッシュ内のデータと一致していることを確認する操作を自動的に実行するように Data Grid を設定できます。
起動モード
- none
- デフォルトでは、インデックス作成操作は行われません。
- purge
- キャッシュの開始時にインデックスをクリアします。この操作中はキャッシュを使用できません。
- reindex
- キャッシュの開始時にインデックスを再構築します。
- auto
- キャッシュを自動的にクリアまたは再インデックス化します。データが揮発性で、インデックスが永続的である場合、キャッシュは開始時にクリアされます。データが永続的で、インデックスが揮発性の場合、キャッシュは開始時に再インデックス化されます。
Purge モードの設定
<distributed-cache>
<indexing storage="filesystem" startup-mode="purge">
<!-- Additional indexing configuration goes here. -->
</indexing>
</distributed-cache>
動的インデックススキーマの更新
変更が以前のスキーマと互換性がある限り、インデックスの再作成やダウンタイムなしでスキーマを更新できます。Data Grid は既存のインデックスを保持し、スキーマのみを更新します。
次のいずれかの方法でスキーマを更新できます。
プログラムで
updateIndexSchema()メソッドを呼び出して、Hot Rod Java クライアントからスキーマを更新します。remoteCacheManager.administration().updateIndexSchema("MyCache");ヒントリモートキャッシュの場合、
update-schemaコマンドを使用して Data Grid コンソールからスキーマを更新することもできます。-
POSTリクエストでスキーマを更新します。
POST .../v2/caches/{myCache}/search/indexes?action=updateSchema
クエリーによって返される結果の制限
Data Grid は、クエリーによって返される結果の数を制限する default-max-results プロパティーを追加します。default-max-results プロパティーのデフォルト値は 100 です。クエリーによって返される結果の数を制限すると、明示的な制限が設定されていないクエリーのパフォーマンスが大幅に向上します。
1.12.6. Data Grid コマンドラインインターフェイス (CLI) リンクのコピーリンクがクリップボードにコピーされました!
Data Grid CLI を使用すると、リモートキャッシュの管理操作をスクリプト化および自動化できます。
セキュリティー認証の改善
Data Grid CLI で、クライアント証明書認証を使用して Data Grid サーバーに接続できます。
すべてのキャッシュへのコマンド適用
Data Grid CLI では、--all-caches または -a オプションを使用して、コマンドをすべてのキャッシュに適用できます。たとえば、次のコマンドを実行すると、Data Grid はすべてのキャッシュのバックアップロケーションのステータスを表示します。
[//containers/default]> site status --all-caches --site=NYC
詳細は 、Data Grid コマンドラインインターフェイスの使用 を参照してください。