BIND 10 #2135: design a new statistics model

BIND 10 Development do-not-reply at isc.org
Wed Aug 8 01:53:58 UTC 2012


#2135: design a new statistics model
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  UnAssigned
  naokikambe                         |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20120821
  medium                             |            Resolution:
                  Component:         |             Sensitive:  0
  statistics                         |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  8
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Description changed by naokikambe:

Old description:

> As a result of the f2f meeting in Apr, we agreed that the stats daemon
> should pull statistics from each module. But in the current model, each
> module pushes to the stats daemon. So we need to design such a pull
> module before implementation.
> Current model:
> {{{
> +----+      +-----+
> |Auth| ---> |Stats|
> +----+ push +-----+
> }}}
> New model:
> {{{
> +----+ <--- +-----+
> |Auth| ---> |Stats|
> +----+ pull +-----+
> }}}
>
> In this ticket, the task is to revise the existing document
> [[StatsModule]] in which the current model is described. In that
> document, we should also describe how the stats daemon invokes the
> command and how the modules reply to that.
>
> If the new model is implemented into all modules, the existing push model
> would be unused and the codes might be dead codes. So we should replace
> the current model with the new model. After the implementation, we would
> remove such dead codes.

New description:

 As a result of the f2f meeting in Apr, we agreed that the stats daemon
 should pull statistics from each module. But in the current model, each
 module pushes to the stats daemon. So we need to design such a pull module
 before implementation.
 Current model:
 {{{
 +----+      +-----+
 |Auth| ---> |Stats|
 +----+ push +-----+
 }}}
 New model:
 {{{
 +----+ <--- +-----+
 |Auth| ---> |Stats|
 +----+ pull +-----+
 }}}

 In this ticket, the task is to revise the existing document
 [[StatsModule]] in which the current model is described. In that document,
 we should also describe how the stats daemon invokes the command and how
 the modules reply to that.

 If the new model is implemented into all modules, the existing push model
 would be unused and the codes might be dead codes. So we should replace
 the current model with the new model. After the implementation, we would
 remove such dead codes.

 [Additional description]
 5 Main purposes of this ticket are:

 * Change from pushing statistics data to fetching statistics data

   In current version, each target module pushes statistics data to the
 stats module.  In next version, the stats module asks each module to
 return statistics data.  It is discussed in #1847 that the timeout problem
 is caused if the stats module isn't there.  this change is for fixing the
 problem. The existing pushing model should be removed from both of the
 stats module and each module because the pushing model is expected to be
 unused and the algorithm of the modules is expected to be complicated.

 * Make the stats module ask each module periodically

   Due to the above change, the target modules never send statistics data
 to the stats module. In stead of this, the stats module asks each module.
 That behavior should be periodical. The periodical time should be
 configurable for a administrator. Thus the stats module should have an
 interval time item in its configuration.

 * Introduce a new command in each module for returning statistics data

   For returning statistics data, a new command is required for each
 module.  Details of the command should be described in the wikipage. For
 example, the things are : what name of the command is, whether the command
 has an argument, how the target module returns statistics data what the
 stats module should do if statistics data are invalid.

 * Consider multiple instances of the same module running

   In the case of running multiple instances of the same module, the things
 to be considered are: When a instance is unexpectedly down, how the stats
 module handles its collected statistics data. Whether the stats module
 should hold them or discard them.

 * Consider against the increasing amount of statistics data

   In the current version, the amount of statistics data which all modules
 have is not so much. But if the statistics items of each module increase,
 we wouldn't be able to ignore the total amount of statistics data which
 would be sent in the message queue. Each module should return only
 differential updates of statistics data for reducing the amount.

--

-- 
Ticket URL: <https://bind10.isc.org/ticket/2135#comment:11>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list