On 8/19/12, Mark Andrews <marka@isc.org> wrote:
As for the original problem. LRU replacement will keep "hot" items in the cache unless it is seriously undersized. [snip] Well, that's the problem. Items that are not relatively "hot" will be purged, even though they may be very popular RRs. Cache efficiency is not defined as "keeping the hot items".
Efficient caching is defined as maximizing the hit percentage. The DNS cache may have a load of DNSBL queries; so all the entries will be cold. The problem in that case is not low utilization, it's high utilization of queries that are useless to cache, because those questions will only be asked once, because in LRU there's no buffer maintaining an eviction history. An example alternative strategy is, you have a Cache size of XX RR buckets, and you keep a list of YY cache replacements (not necessarily the entire RRs, just label and a 1-byte count of evictions), and you have a cache policy of: pick the entry whose TTL has expired OR that has the lowest eviction count, that is least-recently used or has the least number of queries, to replace,. -- -JH