[bind10-dev] Question about statistics incremental update

fujiwara at jprs.co.jp fujiwara at jprs.co.jp
Tue Oct 9 09:57:07 UTC 2012


Incremental statistics update was discussed at April2012Meeting.
 From http://bind10.isc.org/wiki/April2012MeetingMinutes,

  * Statistics completion
    - Discussed earlier in the week. Main thing is dumping statistics from lots of zones. Main changes:
      = differences - only sending changes since last statistics query

I'm considering how to implement it. There are some options.
Please choose and comment them.
I will be happy if comments will come by 10/15 (next Monday).

Question 1: Which do you prefer that transfered statistics data
            is increment(delta) or counter data itself ?

* Option 1: some of statistics data are increment(delta).
            each statistics data is an increment from last read.
            it is transfered if the increment from last read is not zero.

* Option 2: Each statistics data is transfered
            if the data is changed frm last read.

            pros: It is already implemented at trac2179:
                  Update Stats to support partial statistics updates

            cons: It requires previous counters at last read
                  and it doubles couter memory usage at statistics targets.

(If Option 1 is selected at Question 1)
Question 2: How to distinct increment or counter ?

* Option 1: add "item_subtype" in module spec.
            its value is "none" or "incremental". the default is "none".

* Option 2: add "integer_incremental" to values of "item_type".
            pros: It does not increase type names and easy to implement.
            cons: It can be used anywhere and it is useless.

* Option 3: add a special message "incremental_mode: true" in statistics data.
            pros: very easy to implement.
            cons: It cannot support co-existence of
	          incremental and non-incremental.

Question 3: Do you have another options ?

(If Option 1 is selected at Question 1)
Question 3: How to implement incremental counters ?

  * Option 1: read a counter value and clear the counter.

      inline Counter::Value
      Counter::getClear(const Counter::Type type) {
      Counter::Type value;
        if(type >= counters_.size()) {
          isc_throw(isc::OutOfRange, "Counter type is out of range");
        }
        value = counters_.at(type);
        counters_.at(type) = 0;
        return (value);
      }

  * Do you have another implementation method ?

--
Regards,

--
Kazunori Fujiwara, JPRS <fujiwara at jprs.co.jp>


More information about the bind10-dev mailing list