BIND 10 #2854: memory manager framework

BIND 10 Development do-not-reply at isc.org
Wed Jun 12 19:10:17 UTC 2013


#2854: memory manager framework
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  task          |  jinmei
            Priority:  medium        |                       Status:
           Component:  shmem         |  accepted
  manager                            |                    Milestone:
            Keywords:                |  Sprint-20130611
           Sensitive:  0             |                   Resolution:
         Sub-Project:  DNS           |                 CVSS Scoring:
Estimated Difficulty:  9             |              Defect Severity:  N/A
         Total Hours:  0             |  Feature Depending on Ticket:
                                     |  shared memory data source
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Changes (by jinmei):

 * milestone:  Sprint-20130625 => Sprint-20130611


Comment:

 trac2854 is (finally) ready for review.

 It's based on a snapshot version of trac2853.
 The effective branch point is commit e626839.

 The branch is pretty big (estimation was correct, and in retrospect we
 should have broken down into smaller tasks), but it consists of
 several stages, each is quite clearly separated, so I believe the
 review can be done step by step.  If the total branch looks too big
 we could also separate the review process.

 - c27421b to 2379e41: it introduces a generic "server" module that
   implements common behavior of BIND 10 server programs
   (initialization, setup module CC session, running a loop, etc).
   We've been using a similar code pattern like this for many of our
   Python programs, so I thought it's now better to provide a common
   framework.  Hopefully it can be used (with more extensions) for the
   revised versions of xfr's, too.
 - 1b1c061 to 554c01b: some necessary updates and corrections to the
   server_common.datasrc_clients_mgr module.  054d97c and 554c01b are
   the "corrections".  I did it wrong in #2946, and while it could be
   done outside of this task, it will require a change to memmgr later
   and would also affect the ongoing zonemgr work.  So I chose to fix
   it now.
 - 2987b19: this is essentially a part of memmgr implementation, but I
   chose to make it in a separate method so each module file will be
   concise enough.
 - 2987b19 and above: this is the main memmgr program.  with all the
   setup so far, this part itself isn't that big.

 Some other notes:
 - since the branch is getting bigger, I chose not to handle any other
   commands than 'shutdown' within this task.
 - as can be easily noticed, I introduced the concept of the
   "generation ID" for the data source configuration.  It's not yet
   clear whether/how we use such a concept to handle full data source
   reconfig, and in that sense it may be premature.  I thought it's
   still better to take it into account from the beginning to avoid
   major updates at a later stage, but we can discuss it.
 - details of some other parts are still not really fixed, like how the
   "builder" will work, or how we handle reader modules such as auth.
   I left some hints about how it would look like, but that can change
   as we implement these parts.

 Finally, I don't think we need a changelog entry for this yet; while
 it's a runnable daemon it's still basically useless for users in
 practice.

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


More information about the bind10-tickets mailing list