BIND 10 #1608: implement ZoneFinder::Context::getAdditional() for in memory data source (was: implement findAdditional() for in memory data source)

BIND 10 Development do-not-reply at isc.org
Sat Mar 3 00:24:22 UTC 2012


#1608: implement ZoneFinder::Context::getAdditional() for in memory data source
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:
  jinmei                             |                Status:  new
                       Type:  task   |             Milestone:  Next-Sprint-
                   Priority:  major  |  Proposed
                  Component:  data   |            Resolution:
  source                             |             Sensitive:  0
                   Keywords:         |           Sub-Project:  DNS
            Defect Severity:  N/A    |  Estimated Difficulty:  5
Feature Depending on Ticket:  auth   |           Total Hours:  0
  performance                        |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by jinmei):

 * milestone:  Year 3 Task Backlog => Next-Sprint-Proposed


Old description:

> 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.

New description:

 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
 ZoeFinder::Context::getAdditional() 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#comment:6>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list