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