😀
キャッシュへのアクセスパターン(2種)のまとめ
キャッシュ制御の設計を実施する機会があったので、調べた内容を簡単にまとめておきます。今回調べた制御手法は以下の2つの手法です
- Lazy Loading
- Write Through
私は読み込み
対象のデータに偏りが大きいと判断したのでLazy Loading
を採用することにしました。
比較
Lazy Loading | Write Through | |
---|---|---|
キャッシュ容量 | 少ない | 多い(全てのデータ(アクセス頻度が少ないデータを含む)をキャッシュする) |
処理負荷 | 効率的(アクセス頻度の低いデータのキャッシュは作成しない) | 非効率(読み込まれないデータもキャッシュする) |
キャッシュミス | 発生する | ない |
データ鮮度 | キャッシュ保持期間に依存 (時間等でキャッシュ破棄の管理必要) |
古くなることは無い |
レイテンシ (書き込み) |
影響なし | キャッシュ更新時間が発生 (設計依存) |
レイテンシ (読み込み) |
キャッシュミス時に時間がかかる | 高速 |
手法別の処理フロー
(まずキャッシュを読む⇒なければオリジナル読む⇒結果をキャッシュに書く)
Lazy Loading書き込み時
読み込み時
(常にキャッシュにも書き込む)
Write Through書き込み時
クライアントによる書き込み
ソース更新に連動
読み込み時
自分用のメモですが、誰かの参考になれば幸いです。
以上です。
Discussion