[bind10-dev] recursor cache requirements - input required

Likun Zhang zlkzhy at gmail.com
Thu Dec 9 11:59:49 UTC 2010


> I haven't done this for a few years, When I last looked at recursive
> server traffic, things like www.google.com are queried less than you
> think. Most endpoint resolver keep a cache so you don't look up
> www.google.com every time you get a new page. The ones that hurt are
> ones like facebook and yahoo that use short (<=120 s) ttls. Since the
> data invalidates on the server the same time it invalidates on the
> client, there is no win in keeping the message around for these.

not sure I understand the "endpoint resolver" means here, does it mean the
the simple dns cache on ender user side? Like the the nscd in linux, the
service "dns clients" in windows?
If it is, you can't make sure what they cache for you.

> Since you are saying it needs to be its own resource with its own LRU,
> you always need to have the ability to build the message from the cache.
> Leave a couple hooks in place and get the server working first. There
> are all sorts of corner cases to be found and addressed. Paul and Vern,
> with me kibitzing, spent 4+ months finding all sorts of corner cases out
> in the wild and fixing the server to handle them correctly. Pretty much,
> if it resolved in the prior version of BIND, you are not allowed to
> break it. I wonder if merit.edu's delegation is as FU as it was 4 years
> ago. It's an ugly namespace out there and a recursive server gets to see
> it all.

if we don't cache the message, you have to build the message from the only
rrset cache without any hint. You have to search the DNAME, CNAME record in
the cache every time when you building the message, like the logic
authoritative server do. If you can't  find them in the cache, you have to
ask some authoritative server, since these records may be just removed from
cache by the LRU algorithm. The result is it lowers the recursor performance
too much.


Thanks

Likun












More information about the bind10-dev mailing list