BIND 10 #1775: update in-memory getAdditional() to handle wildcard match for additional names

BIND 10 Development do-not-reply at isc.org
Fri Mar 23 21:04:25 UTC 2012


#1775: update in-memory getAdditional() to handle wildcard match for additional
names
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  jinmei                             |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:  high   |  Sprint-20120403
                  Component:         |            Resolution:
  Unclassified                       |             Sensitive:  0
                   Keywords:         |           Sub-Project:  DNS
            Defect Severity:  N/A    |  Estimated Difficulty:  5
Feature Depending on Ticket:  auth   |           Total Hours:  3.98
  performance                        |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 Replying to [comment:13 vorner]:

 > By the time, I hope to have the new in-memory data structure. We should
 soon stop improving this one and start working on the design of the one
 that can handle the shared memory and dynamic updates.
 [...]
 > To say the truth, the logic in that file is getting very complicated.
 Few more changes and it will be virtually impossible to review or fix.

 Yeah, I full agree.  memory_datasrc.cc has already become non
 understandable.

 > Anyway, that's not really because the new changes, it's just there's too
 much functionality. I believe the new changes are OK (but I'm surprised
 the tree does not preserve pointers when updated ‒ after all, it is a tree
 and it has little reason to change positions of nodes in memory).

 The problem is that when we extract node for "b.example" from
 "a.b.example" on inserting the former, the current implementation
 creates a new node (which is unavoidable of course) and moves the
 ownership of the existing name (a.b.example) to the new node.  In the
 original BIND 9 implementation it preserves existing nodes' ownership
 when adding a new node - we should do the same thing.

 From a quick look this is the only point that led to the additional
 hack for the purpose of this branch.  We could create a new ticket to
 fix that (and probably also remove the hack at the same time), but
 just as we discussed above, we might rather focus on redesigning.  Do
 you have an opinion?

 At the moment, I'm going to add the following comment so we don't
 forget it even if we don't do this soon.
 {{{#!c++
 // Note: when we redesign this (still keeping the basic concept), we
 should
 // change this part so the newly created node will be used for the
 inserted
 // name (and therefore the name for the existing node doesn't change).
 // Otherwise, things like shortcut links between nodes won't work.
 }}}
 (I don't think we need to have an explicit review cycle for this, so
 I'll directly add it to the master with the merge.  But if you see any
 problem please raise it).

 Now merge done, closing the ticket.

 Thanks.

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


More information about the bind10-tickets mailing list