This is sometimes referred to as the &quot;admission policy&quot; of a cache and can have a large effect at increasing the hit ratio.<p>Most policies try to minimize the impact of low frequency items. For example SLRU uses a small probation space that promotes to a protected region if re-accessed. This allows quickly discarding low frequent items. ARC uses an adaptive version of this idea.<p>LIRS uses a very small region (HIR) that promotes to a large region (LIR) based in the inter-reference period. This allows it to discard many new arrivals by using a large number of ghosts to retain usage history.<p>TinyLFU is a probabilistic LFU filter that decides whether to admit by comparing the frequency of the arrival to the victim. This is often near optimal, but can suffer due to sparse bursts causing consecutive misses. An admission window (W-TinyLFU) resolves this problem, usually with a 1% window.<p>I have a simulator and traces that you could easily add onto to experiment. [1]<p>I recommend reading the TinyLFU paper as I think it is the best match to your ideas. [2]<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;ben-manes&#x2F;caffeine" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ben-manes&#x2F;caffeine</a>
[2] <a href="http:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;1512.00727.pdf" rel="nofollow">http:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;1512.00727.pdf</a>