content-type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-RT-Original-Encoding: ISO-8859-1 Content-Length: 2380 My resolvers don't have enough traffic to make prefetch very interesting, so I haven't played with it. Nonetheless, I did think about it. So while this isn't exactly a 'bug' report, I thought I'd share the thoughts in case they are useful. The 9.10 'prefetch' mechanism is currently tuned by a TTL threshold ('elegibility') and a window ("trigger"). Both are fixed global parameters. The threshold makes intuitive sense - no point in prefetching if TTL is very small. The window is intended to avoid prefetching low activity zones so the records can expire from the cache; prefetch is initiated if a request arrives in the window at the end of TTL. It's not obvious that a fixed window is the only sensible way to specify when to prefetch. Has any thought been given to alternatives? One that comes immediately to mind is % TTL remaining. This would adapt to the TTL of the record, and provide some more useful opportunities for tuning caching at the resolver. Some examples: .5 - aggressive - cuts TTL in 1/2, minimize chance of miss .95 - conservative - fetch near the end, maximize caching. .01 - 'somewhat insane' - try to cache even low use records One might specify this using a fractional trigger value, say: prefetch .8 9; # 80% The integer part could also be a limit (e.g. 90.8 = 80%, but no sooner than 90 seconds remaining). This would be consistent with the current definitions. A 'and no later than' might also be useful - but risks making thing a bit messier. Speaking of messier: the option syntax prefetch number number; is not desirable, as it's not easy to remember. Please stop adding options of this form. (dnssec-sig-validity-interval also has this sort of syntax.) I understand the desire to not have a zillion top-level keywords (e.g. prefetch-trigger and prefetch-elegibility). As an alternative, consider a position-independent keyword syntax such as prefetch trigger=5 elegibility=60 This could be retrofitted to the existing mult-value options and be backward-compatible (no keyword => defined by order), but would make it a lot easier to remember what's going on - whether reading a config file or generating one. -- Timothe Litt ACM Distinguished Engineer -------------------------- This communication may not represent the ACM or my employer's views, if any, on the matters discussed.