BIND 10 #1608: implement findAdditional() for in memory data source
BIND 10 Development
do-not-reply at isc.org
Thu Jan 19 06:55:31 UTC 2012
#1608: implement findAdditional() for in memory data source
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: task | Status: new
Priority: major | Milestone: Year
Component: data source | 3 Task Backlog
Sensitive: 0 | Keywords:
Sub-Project: DNS | Defect Severity: N/A
Estimated Difficulty: 0 | Feature Depending on Ticket:
Total Hours: 0 | Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
This is a subtask for "Pre-establish shortcuts for additional section
processing" described in
https://lists.isc.org/pipermail/bind10-dev/2012-January/002985.html
It depends on #1605 and #1607.
In this task we extend the (tentatively named) `RBNodeRRset` so that
it stores a shortcut to the RBNode corresponding to its each RDATA.
For example, an NS `RBNodeRRset` maintains a list of pointers to the
RBNodes corresponding to the NS names of its RDATAs. In our current
implementation this only happens for NS and MX (in future we should
extend and generalize it).
In my experimental implementation, I built a tentative list of all NS
and MX RRsets while loading the zone content, and once the zone is
built, build the additional pointer list for each NS and MX RRset
stored in the tentative list. Then release the list. This
tentatively requires more memory, so if there's a simpler way to build
it more incremental, that would be nice.
On top of this setup, the in memory version of findAdditional() checks
the pointers to the RBNodes, and search for requested types of RRsets
at each node. Then push all found RRsets to the result vector and
return.
This task completes the entire shortcut feature.
--
Ticket URL: <http://bind10.isc.org/ticket/1608>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list