BIND 10 #2219: switch to memory-efficient version of in memory data source

BIND 10 Development do-not-reply at isc.org
Sat Sep 22 00:34:32 UTC 2012


#2219: switch to memory-efficient version of in memory data source
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  jinmei                             |                Status:  accepted
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20120925
  medium                             |            Resolution:
                  Component:  data   |             Sensitive:  0
  source                             |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  6
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
  scalable inmemory                  |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 trace2219 is ready for review.

 It's developed on top of #2218, and cannot be merged until #2218 is
 done, but changes are basically independent, so it should be
 reviewable without waiting for the completion of #2218.

 This branch consists of a relatively straightforward adjustment for
 the users of the in-memory data source with several small fixes to
 issues I encountered.

 Changes that may need explanation would be:

 - First two commits (up to 40fe836) are dependencies and should be
   ignored.
 - 8d09311 is the main change.  I needed to made non-trivial changes to
   the client list unittests, but the changes to the main code should
   be pretty straightforward.
 - e1ae684 is an important fix to the new in-memory finder.  without
   this non DNSSEC queries won't be handled correctly.
 - 1b35c2a is another fix to the zone finder.  this is relatively
   minor, but needed to cover some corner cases.
 - 56df3cb might be a bit tricky.  I think we should rather hide
   details like `DataSourceInfo` from applications, but for the purpose
   of this migration I wanted to minimize the size of the change.
 - 5261f93 is another tricky workaround.  maybe we should think about
   cleaner solution, but I think it's okay for now.
 - b4913f7 is an unrelated bug fix, but necessary for the new
   implementation to work correctly.  the fix should be obvious.
 - a61af89 is not absolutely necessary for the purpose of this
   migration, but without this usability will be affected for huge
   zones (which is the main purpose of the migration).

 And, there's one remaining part that still uses the old
 implementation: the static data source (client).  To switch it to the
 new one, we'd need some wrapper `DataSourceClient` derived class
 because it would need a separate memory segment.  The change shouldn't
 be difficult, but since the branch is getting bigger and
 memory-efficiency shouldn't be an issue for the static case anyway, I
 thought it'd be better to defer it so we can complete and merge the
 important part sooner.  I'll create a separate ticket for this.

 Final note: some system tests fail due to bugs that existed at the
 point of branching.  I confirmed that they pass with merging the
 latest master.

 This is the proposed changelog entry:
 {{{
 477.?   [func]          team
         Memory footprint of the in-memory data source has been
         substantially improved.  For example, b10-auth now requires much
         less memory than BIND 9 named for loading and serving the same
         zone in-memory.  This is a transparent change in terms of user
         operation; there's no need to update or change the configuration
         to enable this feature.
         Notes: multiple instances of b10-auth still make separate copies
         of the memory image.  Also, loading zones in memory still suspends
         query processing, so manual reloading or reloading after incoming
         transfer may cause service disruption for huge zones.
         (Multiple Trac tickets)
 }}}

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


More information about the bind10-tickets mailing list