10.3. Data Grid 永続性 SPI
Data Grid Service Provider Interface (SPI)は、外部ストレージへの読み取りおよび書き込み操作を有効にし、以下の機能を提供します。
- JCache 準拠のベンダー間での移植性
-
Data Grid
CacheWriter
およびCacheLoader
インターフェイスは、JSR-107
JCache 仕様に準拠します。 - 簡素化されたトランザクション統合
- Data Grid はロックを自動的に処理するため、実装は永続ストアへの同時アクセスを調整する必要はありません。使用するロックモードによっては、通常、同じキーへの同時書き込みは発生しません。ただし、永続ストレージ上の操作は複数のスレッドから発信され、この動作を許容する実装を作成することを想定する必要があります。
- 並列反復
- Data Grid を使用すると、複数のスレッドを持つ永続ストアのエントリーを繰り返すことができます。
- シリアル化の減少による CPU 使用率の削減
- Data Grid は、リモートで送信できるシリアル化された形式で保存されたエントリーを公開します。このため、Data Grid は永続ストレージから取得されたエントリーをデシリアライズし、ネットワークに書き込む際に再びシリアライズする必要はありません。
10.3.1. 永続 SPI クラス
以下の注記は、Data Grid 永続 SPI クラスに適用されます。
- ByteBuffer
- オブジェクトのシリアライズされた形式を抽象化します。
- MarshallableEntry
- キャッシュに追加されたキー/値に対応する永続ストア内に保持される情報を抽象化します。この情報をシリアライズ (ByteBuffer) およびデシリアライズ (Object) 形式で読み取る方法を提供します。通常、ストアから読み取られたデータはシリアライズ形式で保持され、MarshallableEntry 実装内でオンデマンドでデシリアライズされます。
- CacheWriter および CacheLoader
- キャッシュストアへの書き込みおよび読み取りを行うための基本的な方法を提供します。
- AdvancedCacheLoader および AdvancedCacheWriter
- 一括操作を提供し、並列反復や期限切れのエントリーのパージ、消去、サイズなど、下層ストレージを操作します。
- SegmentedAdvancedLoadWriteStore
- セグメントを処理するすべての操作を提供します。
キャッシュストアは、以下のいずれかを実行する場合にセグメント化できます。
- SegmentedAdvancedLoadWriteStore インターフェイスを実装します。この場合、キャッシュごとに単一のストアインスタンスのみが使用されます。
AbstractSegmentedConfiguration 抽象クラスを拡張する設定があります。
これには、
newConfigurationFrom()
メソッドを実装する必要があります。この場合、呼び出しごとに新しいStoreConfiguration
インスタンスが作成されることが想定されます。これにより、ノードが書き込み可能な各セグメントにストアインスタンスが作成されます。ノード間でデータが移動されるため、ストアは開始および停止する可能性があります。
プロバイダーは、これらのインターフェイスのサブセットのみを実装することを選択できます。
- AdvancedCacheWriter を実装しないと、指定のライターが期限切れのエントリーのパージや消去に使用できなくなります。
- ローダーが AdvancedCacheLoader インターフェイスを実装していない場合、プリロードやキャッシュ反復に参加しません (ストリーム操作にも必要)。