BIND 10 #1287: ZoneIterator will need an internal finder

BIND 10 Development do-not-reply at isc.org
Tue Nov 1 07:52:56 UTC 2011


#1287: ZoneIterator will need an internal finder
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  jinmei                             |                Status:  accepted
                       Type:  task   |             Milestone:
                   Priority:  major  |  Sprint-20111108
                  Component:  data   |            Resolution:
  source                             |             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      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 trac1287 is ready for review.

 I made one significant difference from the original plan: instead of
 introducing a generic "finder", I simply added a more focused "getSOA()"
 method.  I found that the generic behavior of the finder would be
 very difficult to implement (probably impossible) for some types of
 databases if we want to have both the finder operations and iterations
 in the same single transaction.  From my quick experiment, at least
 it did't seem to be possible with MySQL in a straightforward way.

 In practice, all we'd need to know is zone's SOA as a shortcut, and
 that should be much easier to implement: we can simply find it before
 starting the iteration, and return that record when asked.

 I needed to tweak the test cases and mock accessor to test the various
 cases,
 but the main code should be pretty straightforward: it just clones a
 separate accessor, starts a transaction, finds an SOA and remembers it,
 then start iteration.  the new getSOA() method simply returns the
 remembered
 value.

 The python wrapper code should also be straightforward.  While we should
 add the same level of tests as C++, I'd defer it to a separate task
 (we already have a ticket for this).  I'd also defer the implementation
 of getSOA() for the in memory data source to a separate ticket to keep
 the diff minimum (and we won't need it for in-memory for the moment
 anyway).

 I'm not planning to add a new changelog entry, but since this is a
 new API, it may make sense to give it.  I'm okay with either way.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1287#comment:6>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list