2.7. 永続ストレージ
永続データソースと対話するように Data Grid を設定すると、パフォーマンスに大幅に影響を及ぼします。このパフォーマンスのペナルティーは、従来型のデータソースが本質的にインメモリーキャッシュよりも遅いという事実から来ています。読み取り操作と書き込み操作はいつでも、呼び出しが JVM 外で行われると時間がかかります。キャッシュストアの使用方法に応じて、Data Grid パフォーマンスは、永続ストレージのデータにアクセスする場合と比べ、インメモリーデータがパフォーマンスを向上するので、パフォーマンスが低下されるのを抑えることができます。
永続ストレージで Data Grid デプロイメントを設定すると、クラスターの正常なシャットダウンの状態を保持できるなど、他の利点も得られます。また、キャッシュから永続ストレージにデータをオーバーフローし、メモリーだけで利用できる容量以上のキャパシティーを獲得できます。たとえば、メモリーに 200 万程度だけを保持しつつ、合計 1000 万個のエントリーを確保できます。
Data Grid は、ライトスルーモードまたはライトビハインドモードで、キー/値のペアをキャッシュと永続ストレージに追加します。これらの書き込みモードはパフォーマンスに別の影響を与えるため、Data Grid デプロイメントの計画時に考慮する必要があります。
| 書き込みモード | パフォーマンスへの影響 |
|---|---|
| ライトスルー | Data Grid は、キャッシュと永続ストレージに同時にデータを書き込むため、一貫性が向上してノード障害などが原因のデータ損失を回避します。
ライトスルーモードの欠点は、同期書き込みが原因でレイテンシーが増加してスループットを減少する点です。 |
| ライトビハインド | Data Grid はデータを同期的に書き込みますが、変更をキューに追加して永続ストレージへの書き込みが非同期に行われるようにします。これにより、一貫性は低下しますが、書き込み操作のレイテンシーが短縮されます。 キャッシュストアが書き込み操作の数を処理できない場合には、Data Grid は、保留中の書き込み操作の数が、ライトスルーと同じ方法で、設定した変更キューサイズを下回るまで、新しい書き込みを遅延させます。ストアの速度は十分購読ですが、キャッシュの書き込みが急増し、レイテンシーが急激に伸びた場合には、変更キューサーズを増やして、急増に対応してレイテンシーを減らすことができます。 |
パッシベーション
パッシベーションを有効にすると、Data Grid がエントリーをメモリーからエビクトする場合にのみ永続ストレージにエントリーを書き込むように設定されます。パッシベーションは、アクティベーションの意も含まれます。キーの読み取りまたは書き込みを実行すると、その鍵がメモリーに戻されて永続ストレージから削除されます。アクティベーション中に永続ストレージからキーを削除しても、読み取り操作や書き込み操作はブロックされませんが、外部ストアへの負荷が増大します。
パッシベーションおよびアクティベーションは、Data Grid が、キャッシュ内の特定のエントリーに対して、永続ストレージへの複数の呼び出しを実行する可能性があります。たとえば、エントリーがメモリーで利用できない場合には、Data Grid はエントリーをメモリーに戻して (読み取り操作 1 回)、永続ストレージから削除します。また、キャッシュのサイズ制限に達すると、Data Grid は別の書き込み操作を実行して、新たにエビクトされたエントリーを渡します。
データによるキャッシュの事前ロード
Data Grid クラスターのパフォーマンスに影響を与える可能性のある永続ストレージの他の側面として、キャッシュの事前読み込みが挙げられます。この機能により、Data Grid クラスターの起動時にキャッシュにデータを設定し、これらのキャッシュは "ウォーム" な状態であるため、読み取りおよび書き込みをより簡単に処理できます。キャッシュが事前読み込みされている場合には、Data Grid クラスターの起動時間が遅くなり、永続ストレージのデータの量が利用可能な RAM の容量よりも大きい場合に、メモリー不足の例外が生じる可能性があります。