BIND 10 #2091: use encoded name data in RBNode

BIND 10 Development do-not-reply at isc.org
Sat Jul 21 01:49:11 UTC 2012


#2091: use encoded name data in RBNode
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  jinmei                             |                Status:  accepted
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20120731
  medium                             |            Resolution:
                  Component:  data   |             Sensitive:  0
  source                             |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  5
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
  scalable inmemory                  |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 Please review trac2091a (don't forget 'a').

 It turns out I needed some preparation work for the main subject of
 this ticket, and that part became already pretty big, so I think it's
 better to get that part reviewed first.

 This preparation work itself consists of two independent features:
 - use `MemorySegment` for `RBTree` and its nodes: changes 2e99938
   and d6b44e0
 - updates to `LabelSequence`: the rest of the branch.

 The first part of diff is quite big, but changes to the tests are
 basically straightforward adjustments due to interface change.

 The `LabelSequence` updates consist of two things:
 - make sure the NONE result of compare() has non 0 ordering.  I've
   also noticed the original implementation was unnecessarily
   complicated, so I tried to make it much simplified.  I've clarified
   the semantics by updating the documentation.  These changes are up
   to f5f665b.
 - introduce serialization/deserialization of `LabelSequence`.  the
   most critical issue was that the existing API doesn't allow to
   construct the label sequence from raw data if the sequence is non
   absolute.  On looking into it, I also thought it would make more
   sense to make the serialized data more opaque for the client side,
   rather than let them handle name/offset data directly.  So I revised
   the interface by introducing a new serialization method and
   constructor from it, and clean up the old ones (I'm sorry for
   dropping the efforts spent on them...when we see specific needs for
   them we can restore these interfaces.  Until then I think it's
   better to keep the class concise with things we know we need).
   Changes 9cc4ac5 and 5b7ac01 are for the new interface.  ecd6c30 is
   just to cleanup the old ones.  So it's probably easier to review if
   you separate the last chunk from others.

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


More information about the bind10-tickets mailing list