BIND 10 #192: Data source hotspot cache
BIND 10 Development
do-not-reply at isc.org
Sat Jun 26 03:44:12 UTC 2010
#192: Data source hotspot cache
-------------------------+--------------------------------------------------
Reporter: each | Owner: jinmei
Type: enhancement | Status: reviewing
Priority: major | Milestone: 05. 3rd Incremental Release: Serious Secondary
Component: b10-auth | Resolution:
Keywords: | Sensitive: 0
-------------------------+--------------------------------------------------
Comment(by jinmei):
Replying to [comment:35 each]:
> > As for "what other context", I can think of various cases, but as you
yourself noted (in the next paragraph) dynamic update is one possibility.
XFR is another.
> However, I'm content with the code we have, so let's agree to disagree.
:)
Okay, but I'm afraid we were probably not on the same page, so let me
clarify a few things.
> But, whether you're doing an update or an XFR or a query, the
authoritative zone for example.com/DS is *always* going to be different
from the authoritative zone for example.com/NS or any other qtype. So I
don't see the point of omitting it from consideration by the DataSrcMatch
class.
I don't understand the logic. Neither update nor XFR request takes into
account the "RR type" (DS or NS, etc) in identifying the appropriate
authoritative zone (or the data source that stores the zone). For XFR
requests the server checks its question, which is a tuple of "zone name,
class (and type=AXFR)". For update requests the server checks its zone
section, which is a tuple of "zone name, class (and type=SOA)". There's
another example, notify, in which case the server checks its question,
which is a tuple of "zone name, class (and type=SOA)".
Only the DS query in normal queries require special considerations.
And, I'd expect a C++ implementation of xfr/update/notify handlers would
use the !DataSrcMatch interface to identify the appropriate data source
for the request, in which case the additional information for qtype is
just distracting. (I know in our current development plan of BIND 10
these will be python scripts, but I'm talking in the context of the design
of a public API, which will be used by any external developers)
Do you mean, by "don't see the point of omitting it from consideration by
the !DataSrcMatch class", we should include this special consideration in
!DataSrcMatch simply because the specific case of DS normal query requires
it while others don't need it?
If so, this is something like a proposal that we should extend BIND 9's
dns_zt_find() (which are called from query/update/xfrout/notify routines)
by adding a type argument and having it behave differently if the type is
DS (and even more differently if the qname is root) because among various
usage cases query.c:query_find() requires this consideration.
If you also don't see the point of why this is awkaward, yeah, I must
admit we have to disagree.
--
Ticket URL: <http://bind10.isc.org/ticket/192#comment:36>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list