第3章 Data Gri 設定の移行
Data Grid 8 への移行に影響するデータグリッド設定の変更を見つけます。
3.1. Data Grid キャッシュの設定
Data Grid 8 は、デフォルトで空のキャッシュコンテナーを提供します。Data Grid を起動すると、キャッシュマネージャーがインスタンス化されるため、実行時にキャッシュを作成できます。
ただし、以前のバージョンと比較すると、すぐに使用できる "デフォルト" のキャッシュはありません。
Data Grid 8 では、CacheContainerAdmin
API を介して作成するキャッシュは、クラスターの再起動後も存続することを保証するために永続的です。
永続的なキャッシュ
.administration()
.withFlags(AdminFlag.PERMANENT) 1
.getOrCreateCache("myPermanentCache", "org.infinispan.DIST_SYNC");
- 1
AdminFlag.PERMANENT
はデフォルトで有効になっており、キャッシュが再起動後も存続するようになっています。
キャッシュを作成するときにこのフラグを設定する必要はありません。ただし、データが再起動後も存続するためには、データグリッドに永続ストレージを個別に追加する必要があります。次に例を示します。
ConfigurationBuilder b = new ConfigurationBuilder(); b.persistence() .addSingleFileStore() .location("/tmp/myDataStore") .maxEntries(5000);
揮発性キャッシュ
.administration() .withFlags(AdminFlag.VOLATILE) 1 .getOrCreateCache("myTemporaryCache", "org.infinispan.DIST_SYNC"); 2
Data Grid 8 は、推奨設定でキャッシュを作成するために使用できるサーバーインストール用のキャッシュテンプレートを提供します。
使用可能なキャッシュテンプレートのリストは、次のように取得できます。
CLI で
Tab
のオートコンプリートを使用します。[//containers/default]> create cache --template=
REST API を使用します。
GET 127.0.0.1:11222/rest/v2/cache-managers/default/cache-configs/templates
3.1.1. キャッシュエンコーディング
リモートキャッシュを作成するときは、キーと値の MediaType を設定する必要があります。MediaType を設定すると、データのストレージ形式が保証されます。
キャッシュをエンコードするには、設定で MediaType を指定します。他の要件がない限り、ProtoStream を使用する必要があります。これは、言語に依存しない下位互換性のある形式でデータを格納します。
<encoding media-type="application/x-protostream"/>
エンコーディングを使用した分散キャッシュ設定
<infinispan> <cache-container> <distributed-cache name="myCache" mode="SYNC"> <encoding media-type="application/x-protostream"/> ... </distributed-cache> </cache-container> </infinispan>
リモートキャッシュをエンコードしない場合、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.
将来のバージョンでは、データ変換が行われる操作にキャッシュエンコーディングが必要になります。たとえば、キャッシュのインデックス作成とデータコンテナーの検索、リモートタスクの実行、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
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-index
namespace is no longer available.
変更された要素と属性
-
urn:infinispan:config
namespace のfile-store
要素は、デフォルトで soft-index ファイルキャッシュストアを使用します。 -
single-file-store
要素はurn:infinispan:config
namespace に含まれますが、非推奨になりました。
新しい要素と属性
-
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
から削除されました。