2.4. 古いデータを管理するストラテジー
Data Grid がデータのプライマリーソースではない場合に、性質的に埋め込みキャッシュとリモートキャッシュは古くなります。Data Grid デプロイメントのプランニング、ベンチマーク、およびチューニング時に、アプリケーションに適したキャッシュの有効期限を選択します。
利用可能な RAM を最大限にできるようにレベルを選択し、キャッシュミスを回避します。Data Grid にエントリーがメモリーにない場合は、アプリケーションが読み取りおよび書き込み要求を送信する時にプライマリーストアに送信されます。
キャッシュミスにより、読み取りおよび書き込みのレイテンシーが増えますが、多くの場合、プライマリーストアへの呼び出しは Data Grid のパフォーマンス低下よりもコストが高くなります。たとえば、一例として、リレーショナルデータベース管理システム (RDBMS) を Data Grid クラスターにオフロードします。このように Data Grid をデプロイすると、従来のデータベースの運用におけるコストが大幅に削減されるため、キャッシュに古くなったエントリーを許容するのは合理的です。
Data Grid では、エントリーに対してアイドルおよびライフスパンの値を最大で設定し、キャッシュの許容できる有効期限を保ちます。
- 有効期限
- Data Grid がエントリーをキャッシュに保存する期間や、クラスター全体で有効な期間を制御します。
有効期限の値が大きくなると、エントリーがメモリーに保存される期間が長くなり、読み込み操作で古い値が渡される可能性が高くなります。有効期限の値が小さいほどキャッシュに含まれる古い値が少なくなりますが、キャッシュミスが発生する可能性が高くなります。
有効期限を指定するため、Data Grid は既存のスレッドプールからリーパーを作成します。スレッドでのパフォーマンスに関する考慮事項として主に、次に有効期限の実行を行うまでの間隔を適切に設定することが挙げられます。間隔が短いほど有効期限が頻繁に実行されますが、より多くのスレッドを使用します。
さらに、アイドル状態の最大有効期限を使用して、Data Grid がクラスター全体でタイムスタンプを更新する方法を制御できます。Data Grid は touch コマンドを送信して、ノード全体で最大アイドル有効期限を同期的、または非同期的に連携します。同期レプリケーションでは、整合性または速度のどちらを優先するかに応じて、sync または async の touch コマンドのいずれかを選択できます。