bind caching algorithm?
Kevin Darcy
kcd at daimlerchrysler.com
Thu Apr 8 02:39:36 UTC 2004
KyoungSoo Park wrote:
>Barry Margolin wrote:
>
>
>
>>In article <c4sk89$12bh$1 at sf1.isc.org>,
>>KyoungSoo Park <kyoungso at cs.princeton.edu> wrote:
>>
>>
>>
>>
>>
>>>Hi,
>>>
>>>Is there anyone who's familar with bind's caching algorithm?
>>>I know it's based on TTLs of the result records, but there should be an
>>>evicting algorthm as well.
>>>How does bind do cache eviction? LRU, LFU ... ?
>>>
>>>
>>>
>>>
>>When it looks up an existing cached record, it checks whether its TTL
>>has expired, and evicts it if so. Also, there's a periodic "cleaning"
>>that scans the entire cache, evicting all records that have expired; the
>>frequency of this is controlled by the "clean-interval" named.conf
>>option.
>>
>>
>>
>>
>This seems clearly not a good design. I think the evicting algorithm
>should have a mechanism of
>reflecting the past and/or future usage at the very least. What's the
>intuition behind this?
>
The intuition is that the owner/administrator of a particular DNS datum
is, within reasonable limits, the one who controls how volatile their
datum is. Statistical methods are fine when you have nothing else to go
on, but when the owner/administrator can tell you, through the protocol,
how volatile a particular piece of data is, experience has shown that it
is best to heed that command, at least as a maximum, i.e. it's OK to
re-fetch the data from an authoritative source *before* the TTL has
expired (and in fact, in memory-poor situations, you may need to
prematurely evict data, thus trading off between memory usage and
network usage), but it is almost uniformly a *bad* idea to hold onto
data for which the administrator-set TTL has expired.
- Kevin
More information about the bind-users
mailing list