第3章 Data Gri 設定の移行
Data Grid 8 への移行に影響するデータグリッド設定の変更を見つけます。
3.1. Data Grid キャッシュの設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid 8 は、デフォルトで空のキャッシュコンテナーを提供します。Data Grid を起動すると、キャッシュマネージャーがインスタンス化されるため、実行時にキャッシュを作成できます。
ただし、以前のバージョンと比較すると、すぐに使用できる "デフォルト" のキャッシュはありません。
Data Grid 8 では、CacheContainerAdmin API を介して作成するキャッシュは、クラスターの再起動後も存続することを保証するために永続的です。
永続的なキャッシュ
.administration()
.withFlags(AdminFlag.PERMANENT)
.getOrCreateCache("myPermanentCache", "org.infinispan.DIST_SYNC");
.administration()
.withFlags(AdminFlag.PERMANENT)
.getOrCreateCache("myPermanentCache", "org.infinispan.DIST_SYNC");
- 1
AdminFlag.PERMANENTはデフォルトで有効になっており、キャッシュが再起動後も存続するようになっています。
キャッシュを作成するときにこのフラグを設定する必要はありません。ただし、データが再起動後も存続するためには、データグリッドに永続ストレージを個別に追加する必要があります。次に例を示します。
ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
.addSingleFileStore()
.location("/tmp/myDataStore")
.maxEntries(5000);
ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
.addSingleFileStore()
.location("/tmp/myDataStore")
.maxEntries(5000);
揮発性キャッシュ
.administration()
.withFlags(AdminFlag.VOLATILE)
.getOrCreateCache("myTemporaryCache", "org.infinispan.DIST_SYNC");
.administration()
.withFlags(AdminFlag.VOLATILE)
.getOrCreateCache("myTemporaryCache", "org.infinispan.DIST_SYNC");
Data Grid 8 は、推奨設定でキャッシュを作成するために使用できるサーバーインストール用のキャッシュテンプレートを提供します。
使用可能なキャッシュテンプレートのリストは、次のように取得できます。
CLI で
Tabのオートコンプリートを使用します。[//containers/default]> create cache --template=
[//containers/default]> create cache --template=Copy to Clipboard Copied! Toggle word wrap Toggle overflow REST API を使用します。
GET 127.0.0.1:11222/rest/v2/cache-managers/default/cache-configs/templates
GET 127.0.0.1:11222/rest/v2/cache-managers/default/cache-configs/templatesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.1. キャッシュエンコーディング リンクのコピーリンクがクリップボードにコピーされました!
リモートキャッシュを作成するときは、キーと値の MediaType を設定する必要があります。MediaType を設定すると、データのストレージ形式が保証されます。
キャッシュをエンコードするには、設定で MediaType を指定します。他の要件がない限り、ProtoStream を使用する必要があります。これは、言語に依存しない下位互換性のある形式でデータを格納します。
<encoding media-type="application/x-protostream"/>
エンコーディングを使用した分散キャッシュ設定
リモートキャッシュをエンコードしない場合、Data Grid Server は次のメッセージをログに記録します。
WARN (main) [org.infinispan.encoding.impl.StorageConfigurationManager] ISPN000599: Configuration for cache 'mycache' does not define the encoding for keys or values. If you use operations that require data conversion or queries, you should configure the cache with a specific MediaType for keys or values.
WARN (main) [org.infinispan.encoding.impl.StorageConfigurationManager] ISPN000599: Configuration for cache 'mycache' does not define the encoding for keys or values. If you use operations that require data conversion or queries, you should configure the cache with a specific MediaType for keys or values.
将来のバージョンでは、データ変換が行われる操作にキャッシュエンコーディングが必要になります。たとえば、キャッシュのインデックス作成とデータコンテナーの検索、リモートタスクの実行、Hot Rod および REST エンドポイントからのさまざまな形式でのデータの読み取りと書き込み、リモートフィルター、コンバーター、リスナーの使用などです。
3.1.2. キャッシュヘルスステータス リンクのコピーリンクがクリップボードにコピーされました!
Data Grid 7.x には、クラスターのヘルスステータスとクラスター内のキャッシュを返すヘルスチェック API が含まれています。
Data Grid 8 は Health API も提供します。組み込みおよびサーバーインストールの場合、次の MBean を使用して JMX 経由で Health API にアクセスできます。
org.infinispan:type=CacheManager,name="default",component=CacheContainerHealth
org.infinispan:type=CacheManager,name="default",component=CacheContainerHealth
Data Grid Server は、REST エンドポイントと Data Grid Console を介して Health API も公開します。
| 7.x | 8.x | 説明 |
|---|---|---|
|
|
| キャッシュが期待どおりに動作していることを示します。 |
|
|
| キャッシュがリバランス状態にあることを示しますが、それ以外場合は想定どおりに動作します。 |
|
|
| キャッシュが期待どおりに動作しておらず、トラブルシューティングが必要な可能性があることを示します。 |
| 該当なし |
| 8.2 で追加され、提供された設定でキャッシュを開始できなかったことを示します。 |
3.1.3. Data Grid 8.1 設定スキーマへの変更 リンクのコピーリンクがクリップボードにコピーされました!
このトピックでは、8.0 から 8.1 までの Data Grid 設定スキーマへの変更をリスト表示します。
新規および変更された要素と属性
-
stackは、インライン JGroups スタック定義のサポートを追加します。 -
stack.combine属性とstack.position属性を使用すると、JGroups スタック定義をオーバーライドおよび変更できます。 -
metric使用すると、Data Grid が Eclipse MicroProfile Metrics API と互換性のあるメトリクスをエクスポートする方法を設定できます。 -
context-initializerを使用すると、ユーザータイプの Protostream ベースのマーシャラーを初期化するSerializationContextInitializer実装を指定できます。 -
key-transformersを使用すると、Lucene でインデックスを作成するためにカスタムキーを文字列に変換するトランスフォーマーを登録できます。 -
statisticsはデフォルトで "false" になりました。
非推奨の要素と属性
次の要素と属性は非推奨になりました。
-
off-heap要素のaddress-count属性 -
transaction要素のprotocol属性 -
jmx要素のduplicate-domains属性 -
advanced-externalizer -
custom-interceptors -
state-transfer-executor -
transaction-protocol
削除された要素と属性
次の要素と属性は以前のリリースで非推奨になり、現在は削除されています。
-
deadlock-detection-spin -
compatibility -
write-skew -
versioning -
data-container -
eviction -
eviction-thread-policy
3.1.4. Data Grid 8.2 設定スキーマへの変更 リンクのコピーリンクがクリップボードにコピーされました!
このトピックでは、8.1 から 8.2 までの Data Grid 設定スキーマへの変更をリスト表示します。
変更された要素と属性
-
white-listがallow-listに変更されました -
roleは、定義されたユーザーロールのroleとセキュリティー認証の権限のサブ要素になりました。 -
context-initializerは、SerializationContextInitializerの自動登録用に更新されます。
設定にcontext-initializer要素が含まれていない場合、java.util.ServiceLoaderメカニズムは、クラスパス上のすべてのSerializationContextInitializer実装を自動的に検出し、それらをロードします。 -
minOccurs属性のデフォルト値は、indexed-entity要素に対して0から1に変更されます。
新しい要素と属性
-
名前/値のトランスポートプロパティーを渡すことができる
transport要素に追加されたproperty属性 -
アクセス制御リスト (ACL) キャッシュのサイズとタイムアウトを設定するために、
security要素に追加されたcache-size属性とcache-timeout属性 -
indexing要素に追加されたindex-reader、index-writer、およびindex-mergeの子要素 -
ストレージオプションを指定する
indexing要素に追加されたstorage属性 -
インデックスにファイルシステムストレージを使用するときにディレクトリーを指定する
indexing要素に追加されたpath属性 -
ノードがエントリーのバイアスを取得できるタイミングを制御する、
scattered-cache要素に追加されたbias-acquisition属性 -
ミリ秒単位で、ノードが取得したバイアスを維持できる期間を指定する、
scattered-cache要素に追加されたbias-lifespan属性 -
クロスサイトレプリケーションとの競合を解決するためのアルゴリズムを指定する、
backups要素に追加されたmerge-policy属性 -
backupのstate-transfer要素に追加されたmode属性mode属性は、クロスサイトレプリケーション状態の転送を手動で行うか自動で行うかを設定します。 -
INSERT_ABOVE、INSERT_BEFORE、およびINSERT_BELOW属性を継承して JGroups のスタックを拡張するためのstack.combine属性に追加します。
非推奨の要素と属性
Data Grid 8.2 では非推奨の要素や属性はありません。
削除された要素と属性
Data Grid 8.2 では要素や属性は削除されません。
3.1.5. Data Grid 8.3 設定スキーマへの変更 リンクのコピーリンクがクリップボードにコピーされました!
このトピックでは、8.2 から 8.3 までの Data Grid 設定スキーマへの変更をリスト表示します。
スキーマの変更
-
urn:infinispan:config:store:soft-indexnamespace is no longer available.
変更された要素と属性
-
urn:infinispan:confignamespace のfile-store要素は、デフォルトで soft-index ファイルキャッシュストアを使用します。 -
single-file-store要素はurn:infinispan:confignamespace に含まれますが、非推奨になりました。
新しい要素と属性
-
index要素とdata要素を使用して、Data Grid がfile-store要素でファイルベースのキャッシュストアのインデックスとデータを格納する方法を設定できるようになりました。 -
file-store要素のopen-files-limitとcompaction-threshold属性 クロスサイト通信にグローバルクラスター名を定義できるようにする
remote-sites要素およびremote-site要素に追加されたcluster属性注記cluster属性で指定するグローバルクラスター名は、すべてのサイトで同じである必要があります。currentNumberOfEntries統計を使用してデータセットを計算できるようにするために、metrics要素にaccurate-size属性が追加されました。重要Data Grid 8.3 以降、
currentNumberOfEntries統計は、実行するのにコストのかかる操作であるため、デフォルトで-1の値を返します。-
最大アイドル有効期限を持つクラスター化キャッシュ内のエントリーのタイムスタンプを更新する方法を制御する
expiration要素に追加されたtouch属性デフォルト値はSYNCで、属性は同期レプリケーションを使用するキャッシュにのみ適用されます。非同期レプリケーションを使用するキャッシュのタイムスタンプは非同期で更新されます。 有効期限の値を割り当てる
strong-counterに追加されるlifespan属性 (ミリ秒単位)。デフォルト値は-1で、強力な一貫性のあるカウンターが期限切れにならないことを意味します。注記強力なカウンターの
lifespan属性は、現在テクノロジープレビューとして提供されています。
非推奨の要素と属性
次の要素と属性は非推奨になりました。
-
single-file-store要素 -
file-store要素のmax-entriesおよびpath属性
削除された要素と属性
Data Grid スキーマでは、以下の要素および属性が利用できなくなりました。
-
transport要素のremote-command-executor属性 -
distributed-cache要素のcapacity属性
3.1.6. Data Grid 8.4 設定スキーマへの変更 リンクのコピーリンクがクリップボードにコピーされました!
このトピックでは、8.3 から 8.4 までの Data Grid 設定スキーマへの変更を一覧表示します。
スキーマの変更
新しい要素と属性
-
default-max-results属性がクエリー要素に追加されました。これにより、クエリーによって返される結果の数を制限できます。インデックス付き、インデックスなし、およびハイブリッドクエリーに適用されます。 -
start-mode属性を使用すると、キャッシュの開始時に Data Grid が実行する操作を定義できます。オプションはpurge、reindex、auto、またはnoneです。デフォルト値はnoneです。 -
raft-members属性を使用すると、スペースで区切られた raft メンバーのリストを定義できます。
非推奨の要素と属性
次の要素と属性は非推奨になりました。
-
scattered-cache要素が非推奨に
削除された要素と属性
Data Grid スキーマでは、以下の要素および属性が利用できなくなりました。
-
fetch-stateストアプロパティーは使用できなくなりました。使用中の xml 設定からこの属性を削除できます。
3.1.7. Data Grid 8.5 設定スキーマへの変更 リンクのコピーリンクがクリップボードにコピーされました!
このトピックでは、8.4 から 8.5 までの Data Grid 設定スキーマへの変更を一覧表示します。
新しい要素と属性
-
tracing要素がcache-containerに追加され、トレーシングを設定できるようになりました。トレースは OpenTelemetry コレクターによって収集できます。 -
authorizationにgroup-only-mapping属性が追加されました。この属性を使用して、principal-to-role mappingがグループプリンシパルにのみ適用されるか、ユーザープリンシパルにも適用されるかを指定します。デフォルト値trueは、principal-to-role mappingをグループプリンシパルにのみ適用します。両方のプリンシパルタイプにマッピングを適用するには、値をfalseに設定します。 -
ロールの説明を定義できる
description属性がrolesに追加されました。 -
serializationにschema-compatibility属性が追加され、スキーマの更新時に実行される互換性検証を指定できるようになりました。 -
unclean-shutdown-action属性がglobal-stateに追加されました。これにより、永続的なグローバル状態でダングリングロックファイルが見つかった場合に実行されるアクションを定義でき、ノードの不正なシャットダウンを示します。デフォルト値はFAILです。 -
indexingにindex-sharding要素が追加されました。シャーディングは、インデックスデータをシャードと呼ばれる複数の小さなインデックスに分割するプロセスです。シャーディングにより、大量のデータを処理する際のパフォーマンスが向上します。シャーディングはデフォルトで無効になっています。 -
indexingにindexing-mode要素が追加され、キャッシュ操作がインデックスに伝播される方法を定義できるようになりました。デフォルトでは、キャッシュへのすべての変更はインデックスにすぐに適用されます。 -
indexingにtracing要素が追加され、トレーシングを設定できるようになりました。トレースは OpenTelemetry コレクターによって収集できます。 -
cacheにaliases属性が追加され、キャッシュに 0 個以上のエイリアス名を定義できるようになりました。 -
キャッシュが統計情報を収集するかどうかを定義する
statistics属性がcacheに追加されました。最適なパフォーマンスを得るには、統計情報収集を無効にしておきます。
非推奨の要素と属性
このリリースでは非推奨はありません。
削除された要素と属性
Data Grid スキーマでは、以下の要素および属性が利用できなくなりました。
-
scattered-cache要素が削除されました。 -
property要素がcacheから削除されました。 -
auto-config要素がindexingから削除されました。 -
statistics-available属性がindexingから削除されました。 -
connection-interval属性がpersistenceから削除されました。