BIND 10 #2835: add interface to get properties of datasrc clients from ClientList

BIND 10 Development do-not-reply at isc.org
Tue Mar 19 07:24:08 UTC 2013


#2835: add interface to get properties of datasrc clients from ClientList
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  task          |  UnAssigned
            Priority:  medium        |                       Status:
           Component:  data source   |  reviewing
            Keywords:                |                    Milestone:
           Sensitive:  0             |  Sprint-20130319
         Sub-Project:  DNS           |                   Resolution:
Estimated Difficulty:  5             |                 CVSS Scoring:
         Total Hours:  0             |              Defect Severity:  N/A
                                     |  Feature Depending on Ticket:
                                     |  shared memory data source
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------

Comment (by jinmei):

 I've not completed review, but am providing some initial feedback.
 That will probably affect the rest of the review.

 '''client_list.h'''

 - On `MemorySegmentState`, in the originally proposed design
   (http://bind10.isc.org/wiki/SharedMemoryIPC) I intended the state is
   independent from whether it's a shared type of segment or not:
   UNUSED, INUSE, or WAITING.  If cache is disabled it will be UNUSED;
   if it's local, or is shared and already mapped, it will be INUSE;
   if it's shared and waiting for mapping info (file name, shared memory
   name, etc), it will be WAITING.  And, read-only applications such as
   b10-auth don't care segment type differences; it only needs to know
   that for WAITING segments it will get information from memmgr.  In
   that sense, current implementation is different from what was
   originally intended: MSS_LOCAL and MSS_MAPPED are specific to the
   corresponding segment type.  While the initial proposed design isn't
   an absolute norm, we can discuss it, but is there any reason for
   making the segment type specific?

 - In any case, I'm afraid "MSS" could be misunderstood especially
   because it's commonly used to mean "maximum segment size".  I'd name
   them a bit more specific at the risk of sounding verbose.

 - On `DataSourceStatus`, is there a reason that `state_` is
   modifiable?  I originally thought this would be most likely a
   read-only structure once constructed.

 - On `DataSourceStatus`: In the original plan (admittedly not clear in
   the ticket) I expected it would contain the memory segment type
   ("local", "mapped", and maybe some others like "shared").  That
   would be retrieved from `ZoneTableSegment` and would be used by
   memmgr in #2856.

 - On `DataSourceStatus`: Likewise, I thought we'd include a list (or
   set) of zone names to be cached into memory.  Again, that would be
   used by the memmgr in #2856.  I'm not really sure about this,
   though...if it contains a large number of zones, returning a copy of
   it would be too heavy.  Maybe it's better to revise the zone writer
   and its getter so we can tell it to "load everything".  In that case
   this list (or set) doesn't have to be included in `DataSourceStatus`.

 - In general, we need a blank line before a "\brief" line.

 '''client_list.cc'''

 - `name` can be a reference here:
 {{{#!cpp
             const string name(name_elem ? name_elem->stringValue() :
 type);
 }}}

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


More information about the bind10-tickets mailing list