9.3. 有効期限
以下のいずれかの時間制限に達すると、キャッシュからエントリーが削除されます。
- 有効期間
- エントリーが存在することができる最大時間を設定します。
- 最大アイドル
エントリーがアイドル状態のままになる期間を指定します。エントリーに対して操作が行われない場合は、アイドル状態になります。
重要現在、最大アイドルの有効期限は永続キャッシュストアによるキャッシュ設定をサポートしません。
例外ベースのエビクションポリシーで有効期限を使用する場合、期限切れの状態ではなく、データコンテナーのサイズに対して削除されないエントリーはキャッシュ数から削除されています。
9.3.1. 有効期限の仕組み
有効期限を設定する場合、Data Grid はエントリーが期限切れになるタイミングを決定するメタデータを持つキーを保存します。
-
有効期限は、
creation
タイムスタンプとlifespan
設定プロパティーの値を使用します。 -
最大アイドルは、
last used
タイムスタンプとmax-idle
設定プロパティーの値を使用します。
Data Grid は、有効期限または最大アイドルメタデータが設定されているかどうかを確認し、値と現在の時間を比較します。
(creation + lifespan > currentTime)
または (lastUsed + maxIdle > currentTime)
の場合、Data Grid はエントリーが期限切れであると検出します。
有効期限は、有効期限リーパーによってエントリーがアクセスまたは検出されるたびに発生します。
たとえば、k1
は最大アイドル時間に到達し、クライアントは Cache.get(k1)
要求を作成します。この場合、Data Grid はエントリーが期限切れであることを検出し、データコンテナーから削除します。Cache.get()
は null
を返します。
Data Grid はキャッシュストアのエントリーも期限切れになりますが、ライフサイクルの有効期限のみになります。最大アイドル有効期限はキャッシュストアでは機能しません。キャッシュローダーの場合、ローダーは外部ストレージからしか読み取ることができないため、Data Grid はエントリーを期限切れにすることはできません。
Data Grid は、期限切れのメタデータを、long
プリミティブデータタイプとしてキャッシュエントリーに追加します。これにより、32 バイトだけにキーのサイズが増える可能性があります。