3.4. 永続キャッシュストア
Data Grid 7.x と比較すると、Data Grid 8 のキャッシュストア設定にいくつかの変更があります。
永続性 SPI
Data Grid 8.1 では、キャッシュストア用の NonBlockingStore
インターフェイスが導入されています。NonBlockingStore
SPI は、呼び出し元のスレッドをブロックしてはならないメソッドを公開します。
データグリッドを永続データソースに接続するキャッシュストアは、NonBlockingStore
インターフェイスを実装します。
ブロッキング操作を使用するカスタムキャッシュストア実装の場合、Data Grid は それらの操作を処理するための BlockingManager
ユーティリティークラスを提供します。
NonBlockingStore
インターフェイスの導入により、以下のインターフェイスは非推奨になります。
-
CacheLoader
-
CacheWriter
-
AdvancedCacheLoader
-
AdvancedCacheWriter
カスタムキャッシュストア
Data Grid 8 では、以前のバージョンと同様に、store
要素を使用してカスタムキャッシュストアを設定できます。
次の変更が適用されます。
-
singleton
属性が削除されます。代わりにshared=true
を使用してください。 -
segmented
属性が追加され、デフォルトでtrue
になります。
セグメント化されたキャッシュストア
Data Grid 8 の時点で、キャッシュストア設定はデフォルトで segmented="true"
になり、次のキャッシュストア要素に適用されます。
-
store
-
file-store
-
string-keyed-jdbc-store
-
jpa-store
-
remote-store
-
rocksdb-store
-
soft-index-file-store
単一ファイルキャッシュストア
シングルファイルキャッシュストアの relative-to
属性は、Data Grid 8 削除されています。キャッシュストア設定にこの属性が含まれている場合、Data Grid はそれを無視し、path
属性のみを使用してストアの場所を設定します。
JDBC キャッシュストア
JDBC キャッシュストアには、xlmns
名前空間宣言を含める必要があります。これは一部の Data Grid 7.x バージョンでは必要ありませんでした。
<persistence> <string-keyed-jdbc-store xmlns="urn:infinispan:config:store:jdbc:11.0" shared="true"> ... </persistence>
JDBC 接続ファクトリー
Data Grid 7.x JDBC キャッシュストアは、次の ConnectionFactory
実装を使用してデータベース接続を取得できます。
-
ManagedConnectionFactory
-
SimpleConnectionFactory
-
PooledConnectionFactory
Data Grid 8 は、Red Hat JBoss EAP と同じ Agroal に基づく接続ファクトリーを使用してデータベースに接続するようになりました。c3p0.properties
および hikari.properties
ファイルを使用できなくなりました。
セグメンテーション
今デフォルトでセグメンテーションを可能に JDBC 文字列ベースのキャッシュストアの設定は、次のプログラムの例のように 、segmentColumnName
と segmentColumnType
パラメーターを含める必要があります。
MySQL の例
builder.table() .tableNamePrefix("ISPN") .idColumnName("ID_COLUMN").idColumnType(“VARCHAR(255)”) .dataColumnName("DATA_COLUMN").dataColumnType(“VARBINARY(1000)”) .timestampColumnName("TIMESTAMP_COLUMN").timestampColumnType(“BIGINT”) .segmentColumnName("SEGMENT_COLUMN").segmentColumnType("INTEGER")
PostgreSQL Example
builder.table() .tableNamePrefix("ISPN") .idColumnName("ID_COLUMN").idColumnType(“VARCHAR(255)”) .dataColumnName("DATA_COLUMN").dataColumnType(“BYTEA”) .timestampColumnName("TIMESTAMP_COLUMN").timestampColumnType("BIGINT”) .segmentColumnName("SEGMENT_COLUMN").segmentColumnType("INTEGER");
ライトビハインド
Write Behind モードの thread-pool-size
属性は、Data Grid 8 で削除されています。
キャッシュストアとローダーの削除
Data Grid 7.3 は、Data Grid 8 で使用できなくなった次のキャッシュストアとローダーを非推奨にします。
- Cassandra キャッシュストア
- REST キャッシュストア
- LevelDB キャッシュストア
- CLI キャッシュローダー
キャッシュストアマイグレーター
以前のバージョンのデータグリッドのキャッシュストアは、データグリッド 8 と互換性のないバイナリー形式でデータを保存します。
StoreMigrator
ユーティリティーを使用して、永続キャッシュストア内のデータを Data Grid 8 に移行します。