BIND 10 #2701: DHCPv6 Performance Testing and Enhancement

BIND 10 Development do-not-reply at isc.org
Mon Mar 4 16:08:02 UTC 2013


#2701: DHCPv6 Performance Testing and Enhancement
-------------------------------------+-------------------------------------
            Reporter:  marcin        |                        Owner:
                Type:  task          |  marcin
            Priority:  medium        |                       Status:
           Component:  dhcp6         |  reviewing
            Keywords:                |                    Milestone:
           Sensitive:  0             |  Sprint-DHCP-20130328
         Sub-Project:  DHCP          |                   Resolution:
Estimated Difficulty:  0             |                 CVSS Scoring:
         Total Hours:  0             |              Defect Severity:  N/A
                                     |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Changes (by tmark):

 * owner:  tmark => marcin


Comment:

 Removal of the call to validate() from OptionDefiniton::optionFactory()
 looks safe. Good catch.

 One thought, would there be any value in adding a with_validate parameter
 (defaults to false/no) to OptionDefinition::optionFactory() and then
 performing
 the validate only when the flag is true/yes?

 --------------------------------------------------------------------------------

 Question on on the memfile composite indexes - did you do monitor memory
 usage
 as well as CPU usage?  While boost is typically very good about memory
 management
 I am a little curious to know how much impact on memory usage this had,
 and to
 ensure it is leak-free.

 On a more minor level, the KeyFromKey naming could perhaps be clearer.

 You aren't really extracting one key from another key, you are extracting
 a "key"
 from within an object hierarchy.  So perhaps KeyFromNestedObject or even
 just
 KeyFrom might be better.  Rather than pass in KeyExtractor1 and
 KeyExtractor2,
 it might be clearer to name them something like  KeyExtractor and
 ObjectExtractor:

     template<typename KeyExtractor, typename ObjectExtractor>
     class KeyFrom {


 Perhaps a little more clarity on the parameter comments themselves would
 be
 sufficient, for example:

     /// @tparam KeyExtractor1 extractor used to access the object used as
     /// a key from the other object that holds it.

 An alternative  "...used to extract the key value from the object
 containing it"

     /// @tparam KeyExtractor2 extractor used to access data in the object
     /// holding nested object used as a key.

 An alternative "... used to extract the nested object containing the key"


 --------------------------------------------------------------------------------

 On commit e0c71421f186a8cf77f1bf7aba7aff072a9caff7, comment says you added
 a
 const, but diff looks like you removed one.

 --------------------------------------------------------------------------------

 Regarding, the documentation changes and new tests under dhcp-val, only
 one
 comment:

 There is a cfg file for memfile testing but it is not mentioned as a test
 case
 in v6.performance.1.txt nor is there a separate test description for it.

 --------------------------------------------------------------------------------

 The types of mysql server tuning parameters discussed in url,while
 interesting,
 fall into the category of site-specific/dba managed values.  Unless they
 can be
 specified on per session, or per database basis we risk undermining some
 other
 use of mysql on the system.

 The callgraphs show, as has been discussed before, that we may have some
 opportunities in how we handle the IPv6 addresses, given that we spend 5%
 of our
 time converting them "fromBytes".   If we move to binary storage in MySQL
 (binary(16)), then we are likely to save both on the conversion we are
 doing
 as well as better index/search peformance from MySQL.

 Overall, this is a very good start at what is far from a trivial effort.

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


More information about the bind10-tickets mailing list