第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 | 説明 |
---|---|---|
|
| キャッシュが期待どおりに動作していることを示します。 |
|
| キャッシュがリバランス状態にあることを示しますが、それ以外場合は想定どおりに動作します。 |
|
| キャッシュが期待どおりに動作しておらず、トラブルシューティングが必要な可能性があることを示します。 |
関連情報
3.1.3. Data Grid 8.1 設定スキーマへの変更
このトピックでは、8.0 から 8.1 までの Data Grid 設定スキーマへの変更をリスト表示します。
新規および変更された要素と属性
-
stack
は、インライン JGroups スタック定義のサポートを追加します。 -
stack.combine
属性とstack.position
属性を使用すると、JGroups スタック定義をオーバーライドおよび変更できます。 -
metric
使用すると、Data Grid が Eclipse Micro Profile 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