Red Hat Data Grid 8.3 リリースノート

Red Hat Data Grid 8.3

Data Grid 8.3 のリリース情報を取得する

Red Hat Customer Content Services

概要

Data Grid 8.3 の機能と拡張機能、および既知の問題と解決済みの問題について確認してください。

Red Hat Data Grid

Data Grid は、高性能の分散型インメモリーデータストアです。

スキーマレスデータ構造
さまざまなオブジェクトをキーと値のペアとして格納する柔軟性があります。
グリッドベースのデータストレージ
クラスター間でデータを分散および複製するように設計されています。
エラスティックスケーリング
サービスを中断することなく、ノードの数を動的に調整して要件を満たします。
データの相互運用性
さまざまなエンドポイントからグリッド内のデータを保存、取得、およびクエリーします。

Data Grid のドキュメント

Data Grid のドキュメントは、Red Hat カスタマーポータルで入手できます。

Data Grid のダウンロード

Red Hat カスタマーポータルで Data Grid Software Downloads にアクセスします。

注記

Data Grid ソフトウェアにアクセスしてダウンロードするには、Red Hat アカウントが必要です。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。

第1章 Data Grid のリリース情報

新機能および最新の Data Grid のリリース情報についてご確認ください。

1.1. Data Grid 8.3.0 の新機能

Data Grid 8.3 は、使いやすさ、パフォーマンス、セキュリティーを向上します。新機能を確認してください。

1.1.1. Java 17 のサポート

Data Grid 8.3 は、埋め込みキャッシュおよびリモートキャッシュに対して Java 17 を完全サポートします。

1.1.2. Data Grid Helm チャート

Data Grid 8.3 では、Red Hat OpenShift に Data Grid クラスターをデプロイするための Helm チャートが導入されました。Data Grid Helm チャートは、Data Grid Operator が管理するクラスターをデプロイすることができない場合や、Data Grid クラスターを手動で設定、デプロイメント、および管理する必要のあるシナリオの代替手段を提供します。

Data Grid Helm チャートには deploy.infinispan の値が含まれ、これにより Helm クライアントまたは OpenShift Web コンソールを使用して、カスタム設定を Data Grid Server ノードに適用できます。

1.1.3. Data Grid の設定

Data Grid は、キャッシュとセキュリティーやクラスタートランスポートなどの基盤となるメカニズムをカスタマイズするための宣言型およびプログラム型の設定属性を提供します。

polyglot 設定

Data Grid 8.3 を使用すると、XML に加えて JSON および YAML 形式で宣言設定を作成できます。デプロイメントプラットフォーム (Red Hat Enterprise Linux (RHEL) あるいは Data Grid Operator または Data Grid Helm チャート経由の Red Hat OpenShift) に同じ Data Grid 設定ファイルを再利用できます。

動的キャッシュの変更可能な設定属性

Data Grid 8.3 を使用すると、実行時に動的に作成するキャッシュの設定属性を変更することができます。そのため、キャッシュを削除してから再作成して、有効期限の lifespan やエビクションの max-count などの設定属性を変更する必要がなくなります。

キャッシュ設定の変更は、既存の設定と互換性がある必要があります。たとえば、cache 設定を変更して replicated-cache 要素を distributed-cache に変更したり、max-size 属性の代わりに max-count 属性を使用したりすることはできません。

変更可能な設定属性の変更

Data Grid コマンドラインインターフェイス (CLI) および REST API は、以下のメカニズムを提供します。

  • 変更可能な設定属性の一覧の取得。
  • ランタイム時の変更可能な設定属性の変更。

使用方法の詳細は、CLI または REST を参照してください。

キャッシュサイズの統計

Data Grid 8.3 以降、currentNumberOfEntries はパフォーマンスを向上させるため、デフォルトで -1 を返します。

この統計の正確な値を復元する場合、Data Grid はメトリクス設定に accurate-size 属性を提供するようになりました。ただし、これはリソースを集中的に使用する計算であり、開発環境にのみ推奨されます。以下のように値を true に設定します。

宣言的 (Declarative)

<cache-container>
 <metrics accurate-size="true"/>
</cache-container>

プログラマティック

GlobalConfigurationBuilder b = new GlobalConfigurationBuilder();
b.metrics().accurateSize(true);

注記

キャッシュサイズの概算の統計を提供するメトリクスは、Data Grid の将来のバージョンで計画されています。

1.1.4. 永続ストレージ

Data Grid 8.3 は、永続ストレージを使用するための新しく改善されたキャッシュストアの実装を提供します。

デフォルトのファイルベースのキャッシュストア実装

メモリーリソースを減らして断片化を回避することでパフォーマンスを向上するために、SoftIndexFileStore が Data Grid のファイルベースのキャッシュストアのデフォルトの実装になりました。8.3 以降では、キャッシュ設定に file-store 永続性を含めると、単一ファイルキャッシュストアではなく、ソフトインデックスファイルベースのキャッシュストアが作成されます。

8.3 にアップグレードすると、Data Grid は自動的に file-store 設定を SoftIndexFileStore に移行します。

以前のバージョンから Data Grid 8.3 に移行する際に、キャッシュ設定に soft-index-file-store 要素が含まれる場合には、これを file-store 要素に変換する必要があります。詳細は、Migrating to Data Grid 8 を参照してください。

Data Grid 8.2

<persistence>
  <soft-index-file-store xmlns="urn:infinispan:config:soft-index:12.1">
    <index path="testCache/index" />
    <data path="testCache/data" />
  </soft-index-file-store>
</persistence>

Data Grid 8.3

<persistence>
  <file-store>
    <index path="testCache/index" />
    <data path="testCache/data" />
  </file-store>
</persistence>

SQL キャッシュストア

Data Grid 8.3 には SQL キャッシュストアが導入され、永続ストレージのデータへのアクセスを簡素化し、JDBC 接続を介してキャッシュを事前に読み込みます。

以下の 2 種類の SQL キャッシュストアを作成できます。

Data Grid は、1 つのデータベーステーブルからエントリーを読み込みます。
クエリー
Data Grid は SQL クエリーを使用してエントリーを読み込み、挿入、更新、および削除操作を実行します。
JDBC 接続ファクトリー

Data Grid 8.3 以降、Data Grid は、org.infinispan.persistence.jdbc.common.configuration パッケージで JDBC 接続に ConnectionFactory 実装を提供します。これらの接続ファクトリーは SQL キャッシュストアと JDBC 文字列ベースのキャッシュストアで使用できます。

1.1.5. Data Grid Server

Data Grid Server は専用の Java 仮想マシン (JVM) で実行され、リモートキャッシュ用にスケーラブルでフォールトトレラントなクラスターを提供します。

分散セキュリティーレルム

Data Grid Server では、複数のセキュリティーレルムを単一のレルムに統合できるようになりました。ユーザーの認証時に、Data Grid Server は、認証を実行できるセキュリティーレルムが見つかるまで、各セキュリティーレルムを順番に使用します。

たとえば、以下のセキュリティーレルムには LDAP レルムとプロパティーレルムおよび distributed-realm 要素が含まれます。

<security-realms>
   <security-realm name="my-distributed-realm">
      <ldap-realm>
         <!-- LDAP realm configuration. -->
      </ldap-realm>
      <properties-realm>
         <!-- Property realm configuration. -->
      </properties-realm>
      <distributed-realm/>
   </security-realm>
</security-realms>
複数のエンドポイント設定

複数のエンドポイントを異なるソケットにバインドし、異なるセキュリティーレルムを使用するように Data Grid Server を設定できます。

例として、以下のスニペットには、2 つの異なるエンドポイント設定が含まれます。1 つのエンドポイントは "public" ソケットにバインドされ、application" セキュリティーレルムを使用し、管理機能を無効にします。別のエンドポイントは "private" ソケットにバインドし、"management" セキュリティーレルムを使用し、管理機能を有効にします。

<endpoints>
  <endpoint socket-binding="public"
            security-realm="application"
            admin="false">
    <hotrod-connector/>
    <rest-connector/>
  </endpoint>
  <endpoint socket-binding="private"
            security-realm="management">
    <hotrod-connector/>
    <rest-connector/>
  </endpoint>
</endpoints>
注記

8.3 以降、endpoints 要素は 1 つ以上の endpoint 設定のラッパーになりました。子要素を endpoints に追加する場合は、endpoint 要素を使用する必要があります。

Data Grid 8.2 以前からアップグレードし、複数のエンドポイントを設定する場合は、設定を 8.3 スキーマに適合させる必要があります。詳細は、Migrating to Data Grid 8 を参照してください。

セキュリティーの強化

クラスタートランスポートのセキュリティーレルム

TLS サーバーアイデンティティーが含まれるセキュリティーレルムを指定して、クラスタートランスポートのセキュリティーを保護します。以下に例を示します。

<cache-container>
  <transport server:security-realm="tls-transport"/>
</cache-container>
注記

この設定は、クロスサイトレプリケーションのために RELAY メッセージも暗号化し、JGroups SYM_ENCRYPT および ASYM_ENCRYPT プロトコルの代替を提供します。クロスサイトレプリケーションに参加するすべての Data Grid クラスターにセキュリティーを設定する必要があります。

PEM ファイルキーストアおよびトラストストア

PEM ファイルを Data Grid Server 設定に直接追加し、それらを TLS サーバーアイデンティティーでトラストストアとキーストアとして使用します。

  • キーストアとしての PEM ファイルには、PKCS#1 または PKCS#8 形式の秘密鍵と 1 つ以上の証明書が含まれている必要があります。
  • トラストストアとしての PEM ファイルには 1 つ以上の証明書が含まれている必要があります。
  • PEM ファイルには空のパスワード password="" が必要です。

OpenSSL を使用した TLSv1.3 の完全サポート

Data Grid Server は、デフォルトで TLS バージョン 1.2 および 1.3 をサポートします。クライアント接続のセキュリティープロトコルを、以下の設定でのみ TLSv1.3 に制限できます。

<engine enabled-protocols="TLSv1.3" />
設定オーバーレイ

Data Grid Server は、重複した --server-config= または -c 引数を使用して、起動時にオーバーレイする複数の設定ファイルを解析できます。

$ bin/server.sh -c infinispan.xml -c overlay.yaml

必要な数の設定オーバーレイファイルを任意の順序で使用できます。設定オーバーレイファイル:

  • それぞれが有効な Data Grid 設定である必要があります。
  • オーバーレイファイルの組み合わせが完全な設定になる限り、完全な設定である必要はありません。
重要

Data Grid Server は、オーバーレイファイル間の競合する設定を検出しません。各オーバーレイファイルは、前述の設定で競合する設定を上書きします。

キャッシュ設定

キャッシュ設定をオーバーレイファイルに追加すると、Data Grid Server はそのキャッシュを他のノードに動的に作成しません。

オーバーレイファイルにはキャッシュ設定フラグメントを含めることはできません。たとえば、オーバーレイファイル -c mycache.yaml に分散キャッシュを作成するには、以下のように infinispan および cacheContainer フィールドを追加する必要があります。

infinispan:
  cacheContainer:
    distributedCache:
      name: "mycache"
      mode: "SYNC"
      owners: 2
      statistics: "true"
      encoding:
        mediaType: "application/x-protostream"
すべてのアドレスのリッスン

Data Grid Server のバインドアドレスとして 0.0.0.0 メタアドレス (INADDR_ANY) を指定すると、利用可能なすべてのネットワークインターフェイスで着信クライアント接続をリッスンします。

パフォーマンスおよびユーザービリティーの改善
  • Data Grid Server 8.3 は、少ないホストリソースを使用するようにスレッドプールを統合します。
  • Data Grid Server のインストールには、Microsoft Windows サービスとして実行するための bin/service.bat スクリプトが追加されました。

1.1.6. Data Grid コンソール

Data Grid Console は、リモートキャッシュを監視および管理するためのグラフィカルユーザーインターフェイスであり、8.3 では以下の機能と拡張機能が含まれています。

  • キャッシュには Entries タブを表示するための適切なエンコーディングが必要になりました。
  • キャッシュのクラスターリバランス操作のオンとオフを切り替えることができます。

    重要

    クラスターのリバランスは、ノードの再起動または複数ノードの追加時に繰り返し行われるクラスターのリバランス操作を回避するために、短期間だけ無効にする必要があります。データ損失を防ぐために、できるだけ早くクラスターのリバランスを有効にします。

  • カスタムテンプレートを Data Grid Server 設定に追加しない限り、キャッシュテンプレートは Add cache ダイアログで利用できなくなりました。
  • JSON エンコーディングおよび Protobuf カスタムタイプの自動検出。
  • キャッシュエントリーの編集がタイプ対応になりました。
  • アラートモーダル、ツールチップ、およびインラインヘルプが更新され、ユーザーエクスペリエンスが改善されました。
  • エラー処理と統計の収集が改善されました。

1.1.7. Data Grid コマンドラインインターフェイス (CLI)

Data Grid CLI を使用すると、リモートキャッシュの管理操作をスクリプト化および自動化できます。

ランタイム時の設定属性の変更

alter コマンドを使用すると、実行時に Data Grid 設定属性を変更できます。

  • --file オプションを使用して、1 つ以上の属性が変更された設定ファイルを指定します。
  • --attribute および --value オプションを使用して、特定の設定属性を変更します。
alter cache mycache --attribute=clustering.remote-timeout --value=5000
キャッシュの可用性の制御

availability コマンドを使用すると、ネットワークパーティションでクラスター化されたキャッシュの可用性を管理できます。

  • DENY_READ_WRITES または ALLOW_READS パーティション処理ストラテジーのいずれかを使用する場合、--mode=[AVAILABLE|DEGRADED_MODE] オプションを使用して、キャッシュの可用性を AVAILABLE または DEGRADED_MODE に設定します。
availability --mode=AVAILABLE mycache
リバランス操作の有効化および無効化

rebalance コマンドを使用すると、キャッシュのクラスターのリバランス操作をオン/オフに切り替えることができます。

重要

クラスターのリバランスは、ノードの再起動または複数ノードの追加時に繰り返し行われるクラスターのリバランス操作を回避するために、短期間だけ無効にする必要があります。データ損失を防ぐために、できるだけ早くクラスターのリバランスを有効にします。

  • rebalance disable コマンドを使用して、リバランスをオフにします。

    [//containers/default]> rebalance disable
  • rebalance enable コマンドを使用して、リバランスをオンにします。

    [//containers/default]> rebalance enable
Hot Rod クラスターの移行

migrate コマンドは、実行中の Data Grid クラスターから別の Data Grid クラスターにデータを移行する追加のオプションを提供します。

  • migrate cluster connect コマンドを使用して、ソースクラスターからターゲットクラスターに接続を確立します。
  • migrate cluster synchronize コマンドを使用して、データをソースクラスターからターゲットクラスターに移行します。
  • migrate cluster disconnect コマンドを使用して、データの移行後にクラスター間の接続を終了します。
クロスサイトレプリケーションリレーノードの取得

site コマンドを使用すると、Data Grid クラスターのどのノードが、クロスサイトレプリケーションに RELAY メッセージを処理するかを確認できます。

  • site is-relay-node コマンドを使用して、ノードがリレーノードであるかどうかを確認します。
  • site relay-nodes コマンドを使用して、クラスター内のリレーノードの一覧を取得します。
ネイティブ CLI

ネイティブ CLI は 8.3 で更新され、oc クライアントプラグインとしての使用が改善され、Red Hat OpenShift で実行される Data Grid Pod と対話できるようになりました。

1.1.8. REST API

Data Grid は、REST 経由で HTTP を使用してリモートキャッシュおよびコンテナーにアクセスできるようにします。

ランタイム時の設定属性の変更
  • キャッシュの変更可能なキャッシュ設定属性をすべて取得します。

    GET /rest/v2/caches/{cacheName}?action=get-mutable-attributes
  • 変更可能なキャッシュ設定属性を変更します。

    POST /rest/v2/caches/{cacheName}?action=set-mutable-attributes&attribute-name={attributeName}&attribute-value={attributeValue}
キャッシュの可用性の制御
  • キャッシュの可用性を取得します。

    GET /v2/caches/{cacheName}?action=get-availability
  • DENY_READ_WRITES または ALLOW_READS パーティション処理戦略のいずれかを使用する場合は、クラスター化されたキャッシュの可用性を変更します。

    POST /v2/caches/{cacheName}?action=set-availability&availability={AVAILABILITY}
リバランス操作の有効化および無効化
  • すべてのキャッシュの自動リバランスをオンにします。

    POST /rest/v2/cache-managers/{cacheManagerName}?action=enable-rebalancing
  • すべてのキャッシュの自動リバランスをオフにします。

    POST /rest/v2/cache-managers/{cacheManagerName}?action=disable-rebalancing
  • 特定のキャッシュの自動リバランスをオンにします。

    POST /v2/caches/{cacheName}?action=enable-rebalancing
  • 特定のキャッシュの自動リバランスをオフにします。

    POST /v2/caches/{cacheName}?action=disable-rebalancing
Hot Rod の移行

REST API は、実行中の Data Grid クラスターから別の Data Grid クラスターにデータを移行できるようにするコントロールを公開します。

  • ソースクラスターからターゲットクラスターへの接続を確立します。

    POST /v2/caches/myCache?action=connect-source
  • ソースクラスターからターゲットクラスターにデータを移行します。

    POST /v2/caches/myCache?action=sync-data
  • データ移行後にクラスター間の接続を終了します。

    DELETE /v2/caches/myCache/rolling-upgrade/source-connection
クロスサイトレプリケーションリレーノードの取得
  • クロスサイトのレプリケーションのために RELAY メッセージを送受信するノードの一覧を取得します。

    GET /rest/v2/cache-managers/{cacheManagerName}
XML、JSON、YAML 間のキャッシュ設定の変換

有効な設定と ?action=convert パラメーターを使用して POST リクエストを呼び出します。Data Grid は、Accept ヘッダで指定されたタイプの設定の同等の表現で応答します。

POST /rest/v2/caches?action=convert
サーバー送信イベントを使用したキャッシュエントリーおよびキャッシュ設定リスナー
  • サーバー送信イベントを使用して、設定変更に関するイベントを受信します。

    GET /rest/v2/container/config?action=listen
  • サーバー送信イベントを使用して、キャッシュイベントを受信します。

    GET /rest/v2/caches/{name}?action=listen

1.1.9. クエリー API

Data Grid を使用すると、キャッシュをインデックス化し、Ickle クエリー言語で関連付けまたはフルテキストクエリーを実行できます。

クエリーによる削除

以下の構文を使用して、Data Grid キャッシュからエントリーを削除できます。

DELETE FROM <entityName> [WHERE condition]
  • <entityName> で単一のエンティティーのみを参照します。DELETE クエリーは結合を使用できません。
  • WHERE 条件は任意です。
クエリー実行メソッド

Query API は、キャッシュで Ickle クエリーを実行する 2 つの方法を提供します。

  • Query.execute() は SELECT ステートメントを実行し、結果を返します。
  • Query.executeStatement() は DELETE ステートメントを実行し、データを変更します。
注記

常に executeStatement() を呼び出してデータを変更し、execute() を呼び出してクエリーの結果を取得する必要があります。

1.1.10. クロスサイトレプリケーション

クロスサイトレプリケーションを使用すると、複数の地理的リージョンにまたがる Data Grid クラスターをバックアップできます。

可観測性およびメトリクスの改善

Data Grid 8.3 は、監視および統計を改善するために、クロスサイトのレプリケーション機能を更新します。

Data Grid を使用すると、以下が可能になります。

  • CLI、REST API、または JMX 経由でバックアップの場所の詳細なステータスを取得します。
  • バックアップ場所のリレーノードの一覧を取得して、クロスサイト通信用に JGroups RELAY メッセージを送信するノードを見つけます。

    注記

    JGroups 設定では、リレーノードを"site master"ノードと呼びます。Data Grid は、よりわかりやすく、より直感的な選択肢を提供するリレーノードを代わりに使用します。

Data Grid 8.3 では、各バックアップの場所およびキャッシュのクロスサイトレプリケーション操作 (応答時間や RELAY メッセージの数などを含む) に関する詳細なメトリクスも提供します。

グローバルクラスターの命名

cluster 属性を使用すると、ログメッセージに出力されるグローバルクラスターの名前を定義できます。これにより、Data Grid ログで、グローバルクラスターとローカルクラスターを簡単に区別できます。

注記

cluster 属性で指定するグローバルクラスター名は、すべてのサイトで同じである必要があります。

デフォルトでは、クロスサイトクラスターの名前は "xsite" ですが、以下の例で "my-global-cluster" などのカスタム名を指定できます。

<remote-sites default-stack="tcp" cluster="my-global-cluster">
  <remote-site name="LON"/>
  <remote-site name="NYC"/>
</remote-sites>

1.1.11. ローリングアップグレードおよび Hot Rod の移行

Data Grid 8.3 は、クラスター間でデータの移行を実行するための設定およびメカニズムを簡素化し、あるバージョンから別のバージョンに移動します。Data Grid 8.3 でのローリングアップグレード:

  • ローリングアップグレードを実行するために remote-store 設定を手動でキャッシュに追加する必要がなくなりました。
    CLI または REST API を使用して、ソースおよびターゲットクラスターを接続します。
  • ローリングアップグレード操作のための REST API および CLI コマンドに追加のメソッドを提供します。
  • コンソール、CLI、REST API、または Hot Rod API を介して動的に作成するキャッシュを使用し、ローリングアップグレードを実行することができます。

1.2. Data Grid 8.3.1 の新機能

Data Grid 8.3 は、使いやすさ、パフォーマンス、セキュリティーを向上します。新機能を確認してください。

連邦情報処理標準 (FIPS) 140-2 への準拠

FIPS 140-2 準拠の暗号化を使用して、RHEL 8 システムに Data Grid Server をインストールして実行できるようになりました。詳細は、FIPS 140-2 準拠の暗号方式を使用するシステムでの Data Grid Server の設定 を参照してください。

指標の改善

このリリースには、Data Grid メトリクスエンドポイントに対するいくつかの機能強化が含まれています。

おおよそのキャッシュサイズの統計

Data Grid 8.3.1 では、キャッシュサイズの概算値を提供する統計が導入されています。8.3.0 では、統計を計算する操作がパフォーマンスに悪影響を与えたため、Data Grid はキャッシュサイズの統計を無効にしました。

デフォルトのメトリック設定では、次の統計が有効になっています。

approximateEntries
リクエストを受け取ったサーバーのキャッシュ内にあるエントリーレプリカの現在の概算数。メモリーと永続ストレージの両方のエントリーが含まれます。
approximateEntriesUnique
リクエストを受け取ったサーバーがプライマリー所有者であるエントリーの現在の概算数。メモリーと永続ストレージの両方のエントリーが含まれます。
globalApproximateEntries
現在キャッシュクラスター全体にあるエントリーレプリカの現在のおおよその数。メモリーと永続ストレージの両方のエントリーが含まれます。
globalApproximateEntriesUnique
クラスター全体のキャッシュ内の一意のエントリーの現在の概算。メモリーと永続ストレージの両方のエントリーが含まれます。複数のノードが所有するエントリーは 1 回だけカウントされます。
クロスサイト接続のリモートサイトステータスメトリク

Data Grid は、metrics エンドポイントを介して各バックアップロケーションのステータスに関するメトリクスを公開するようになりました。Prometheus など、OpenMetrics 形式をサポートする任意の監視ツールから、特定のサイトがオンラインかオフラインかを表示できます。

メトリクスエンドポイントを介して公開される JGroups 属性

Data Grid では、metrics エンドポイントを介して Java Management Extensions (JMX) 統計を使用できます。JGroups プロトコルイベントを監視できるようになりました。

クロスサイトレプリケーションのパフォーマンス強化

このリリースには、非同期バックアップ戦略の競合の検出と解決など、パフォーマンスを向上させるクロスサイトレプリケーション機能に対するいくつかの拡張機能が含まれています。

Data Grid では、廃棄 (tombstone) と呼ばれるメタデータの定期的なクリーンアップの頻度を設定することもできます。Tombstone マップのターゲットサイズとタスク実行間の最大遅延を定義することで、このクリーンアップタスクの頻度を設定できます。

詳細は、Data Grid のクロスサイトレプリケーション を参照してください。

1.3. Data Grid 8.3 でサポートされる Java バージョン

Red Hat は、Data Grid のインストール方法に応じて、さまざまな Java バージョンをサポートします。

組み込みキャッシュ

Red Hat は、カスタムアプリケーションの埋め込みキャッシュに Data Grid を使用する場合、Java 8、Java 11、および Java 17 をサポートします。

リモートキャッシュ

Red Hat は、Data Grid Server インストールに Java 11 および Java 17 をサポートします。Hot Rod Java クライアントの場合は、Red Hat は Java 8、Java 11 および Java 17 をサポートします。

注記

ベアメタルインストールで Data Grid Server を実行する場合、JavaScript エンジンは Java 17 では利用できません。

Java 8 の非推奨

Data Grid 8.2 の時点では、Java 8 のサポートは非推奨になり、Data Grid 8.4 で削除される予定です。

カスタムアプリケーションに埋め込まれたキャッシュを使用する場合は、サポートが利用可能になると Java 11 または Java 17 にアップグレードする計画が必要です。

Java 8 を必要とするアプリケーションで実行している Hot Rod Java クライアントは、古いバージョンのクライアントライブラリーを引き続き使用できます。Red Hat は、最新の Data Grid Server バージョンと組み合わせて、以前の Hot Rod Java クライアントバージョンの使用をサポートしています。

第2章 既知の問題および修正された問題

Data Grid の既知の問題や、修正された問題を確認してください。

2.1. Data Grid の既知の問題

Data Grid Operator で管理する Data Grid クラスターに影響する問題については、Data Grid Operator 8.3 release notes を参照してください。

putAll() の操作で、楽観的ロックで期限切れのエントリーに書き込むとデッドロックが発生する。

問題: JDG-5087

説明:楽観的ロックを使用するトランザクションキャッシュでは、期限切れのエントリーを削除するコマンドが、期限切れが書き込み操作によって引き起こされた場合でもロックを取得してしまいます。putAll() 操作で期限切れのエントリーに書き込まれる場合に、この動作によりデッドロックになってしまう場合があります。

回避策: この問題の回避策はありません。

ネットワークパーティションの発生時における一貫性のないトランザクション

問題: JDG-3935

説明: Data Grid クラスターでネットワークパーティションが発生するシナリオでは、パーティションが修復された後にトランザクションがロールバックされます。

回避策: この問題の回避策はありません。

Red Hat JBoss Web Server から Data Grid 8.3 へのセッションの外部化が、Tomcat セッションクライアントの 7.3.8 または 8.1.1 バージョンで利用できる

問題: JDG-4599

説明: Data Grid 8.3 には、Tomcat セッションクライアントがまだ含まれていません。これは、EAP 7.4 GA 後に利用できます。

回避策: 以下の設定で、Data Grid Server 8.3 を Tomcat セッションクライアントの Data Grid 8.1.1 バージョンと組み合わせて使用します。

<Manager className="org.wildfly.clustering.tomcat.hotrod.HotRodManager"
         configurationName="default"
         persistenceStrategy="${persistenceStrategy}"
         server_list="127.0.0.1:11222"
         protocol_version="2.9"
         auth_realm="default"
         sasl_mechanism="DIGEST-MD5"
         auth_server_name="infinispan"
         auth_username="admin"
         auth_password="changeme"/>

Data Grid 競合解決のパフォーマンス

問題: JDG-3636

説明: テストケースによっては、Data Grid パーティション処理機能では、競合解決に、想定よりも時間がかかりました。

回避策: この問題の回避策はありません。

Data Grid Server が一部の認証情報キーストアを使用できない

問題: JDG-4711

説明: 場合によっては、認証情報キーストアの使用時に Data Grid Server は以下の例外をログに記録します。

java.lang.RuntimeException: org.wildfly.security.credential.store.CredentialStoreException: ELY09508: Cannot write credential to store
...
Caused by: org.wildfly.security.credential.store.CredentialStoreException: ELY09508: Cannot write credential to store
...
Caused by: java.security.KeyStoreException: Cannot store non-PrivateKeys

ほとんどの場合、このエラーは、JKS キーストアに公開鍵と秘密鍵ではなく対称鍵が含まれていることを示しています。

回避策: 認証情報キーストアが非対称キーを使用していることを確認します。

2.2. Data Grid 8.3.0 で修正された機能

Data Grid 8.3.0 には、以下の主な修正が含まれています。

  • JDG-4947 非同期クロスサイトレプリケーションにより、tombstone リークが発生する
  • JDG-5028 期限切れのエントリーを putAll() または getAll() で処理するとデータ競合が発生する
  • JDG-4763 クライアントは、TLS/SSL 暗号化を使用するリモートキャッシュに接続できない
  • JDG-4797 Hot Rod クライアントの手動クラスタースイッチが機能しない
  • JDG-4860 Hot Rod Java クライアントの再試行操作が多すぎる
  • JDG-3629 最大アイドル有効期限は、パッシベーションで設定されたエビクションおよびキャッシュストアでは機能しない
  • JDG-3916 Data Grid Console は、サイトのオンまたはオフ時に不完全なメッセージをログに記録する
  • JDG-4530 セット状態モードを使用した、空の例外によるクロスサイトレプリケーションの自動状態遷移
  • JDG-4598 Data Grid Console は、キャッシュ設定が有効ではない場合に、キャッシュテンプレートを選択するようユーザーに要求する
  • JDG-4852 Hot Rod クライアントが接続されている場合、Microsoft Windows サービスとして実行されている Data Grid Server がシャットダウンしない

2.3. Data Grid 8.3.1 で修正された機能

Data Grid 8.3.1 には、以下の主な修正が含まれています。

  • JDG-2796 Data Grid は JWS セッションを正しくパッシベーションしない
  • JDG-4092 クラスターの再起動が成功した後、キャッシュの永続状態が削除されない
  • JDG-5220 クエリーパラメーターで Ickle フルテキストクエリーが機能しない
  • JDG-5097 Protobuf スキーマキーにスラッシュが含まれていると、バックアップが失敗する
  • JDG-5076 equals が実装されていない場合、RemoveExpiredCommand はバックアップのエントリーを削除しません
  • JDG-5104 Red Hat JBoss EAP (EAP) の Data Grid モジュールに依存関係がない
  • JDG-4657 バインドアドレス引数がなく、サーバーが同じサブネット上にない場合、Hot Rod クライアントは接続に失敗します
  • JDG-5245 Oracle string-keyed-jdbc-store での ClassCastException
  • JDG-5161 永続ストレージからコンテンツを削除すると Compactor が失敗する

2.4. ホストシステムおよび依存関係の問題

場合によっては、Data Grid のデプロイメントで、ホストシステムまたは外部の依存関係が原因でエラーが発生することがあります。このセクションでは、このような既知の問題の詳細と、トラブルシューティングおよび回避策の手順について説明します。

Red Hat Enterprise Linux 7 の TLS

RHEL 7 は、TLSv1.3 へのサポートをまだ提供していない OpenSSL ライブラリーのバージョンを提供します。しかし、Data Grid Server 8.3 はデフォルトで TLSv1.3 および TLSv1.2 を有効にします。これにより、暗号化された Hot Rod および REST エンドポイントのクライアント接続でエラーが発生します。

Data Grid Server は、以下のようなメッセージもログに記録します。

WARN  [org.infinispan.HOTROD] ISPN004098: Closing connection due to transport error
org.infinispan.client.hotrod.exceptions.TransportException:: ISPN004077:
Closing channel due to error in unknown operation.

RHEL 7 に Data Grid Server をインストールする場合は、以下の JVM オプションで OpenSSL を無効にしてネイティブ Java SSL ライブラリーを使用する必要があります。

-Dorg.infinispan.openssl=false

法律上の通知

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.