[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