第9章 データコンテナーの設定およびクリーニング
キャッシュエントリーをエビクトして期限切れにするように Data Grid を設定し、最近アクティブなエントリーのみをメモリーに保持し、データコンテナーのサイズを保護します。
9.1. エビクションと有効期限の概要
エビクションと有効期限は、同様の結果を持つ 2 つのストラテジーで、古い未使用のエントリーを削除することになります。エビクションと有効期限は似ていますが、設定を計画する際に考慮すべき重要な違いがいくつかあります。
- ✓ エビクションは、Data Grid がデータコンテナーの最大サイズを超えないようにします。Data Grid は、エントリーをキャッシュに追加するときにエビクションを実行します。
-
✓ 有効期限により、エントリーの存在が制限されます。Data Grid はスケジューラーを使用して、期限切れのエントリーを定期的に削除します。有効期限が切れていても削除されていないエントリーは、アクセスするとすぐに削除されます。この場合、期限切れのエントリーに対する
get()
呼び出しは、"null" 値を返します。 - ✓ エビクションは Data Grid ノードのローカルです。
- ✓有効期限は Data Grid クラスター全体で実行されます。
- ✓ エビクションと有効期限を一緒に使用することも、個別に使用できます。
-
✓
infinispan.xml
でエビクションおよび有効期限を宣言型で設定し、エントリーのキャッシュ全体のデフォルトを適用できます。 - ✓ 特定のエントリーの有効期限設定を明示的に定義できますが、エントリーごとにエビクションを定義することはできません。
- ✓ エントリーを手動でエビクトし、有効期限を手動でトリガーできます。
Data containers
エビクションと有効期限のコンテキストでは、データコンテナーという用語は、JVM ヒープのオン/オフであるインメモリーデータの保存場所を指します。