[rrd-developers] Re: example of broken asynchronous-DS updates (was RRD data structure "flaw"?)

Alex van den Bogaerdt alex at slot.hollandcasino.nl
Thu Sep 23 01:02:14 MEST 1999


>  > From: Alex van den Bogaerdt
>  > I think this is not the case. An update will do fine.
>  > [...]
> 
> Okay.  Your explanation makes sense.  
> 
> But here's a real-world example of the problem:
> 
>  rrdtool create MadisonSD.rrd --start 937844100 --step 300 \
>    DS:input:COUNTER:300:U:U DS:output:COUNTER:300:U:U \
>    RRA:AVERAGE:0.5:1:10
> 
>  rrdtool update MadisonSD.rrd -t input:output 937844400:2036007229:1286147890
>  rrdtool update MadisonSD.rrd -t input:output 937844700:2051557700:1290492794
>  rrdtool update MadisonSD.rrd -t input 937845000:2069078489

You tell rrdtool to update the RRD at 937845000. Only input is known
and this automatically defines output to be unknown. At the boundary of
the interval you define output to be unknown. The calculation will be:
(unknown - 1290492794) / (937845000 - 937844700) == unknown.

The problem is that you don't expect to get a PDP for output at this
stage while rrdtool is creating one.

>  rrdtool update MadisonSD.rrd -t output 937845001:1294770454

Here, you are updating output only. Therefore you insert an unknown value
for the input. Again, this makes the entire calculation go unknown.

> 
> I think this example demonstrates that asynchronous-DS updates
> don't work right.  Correct?
> 

IMHO they do what can be expected from them, they do not do what you seem
to expect. If this is to be considered a design flaw is yet to be
determined.

I think it is unfortunate that nobody else responds to this as it is,
indeed, something to think about. Right now you are permitted to update
the database without specifying all DSes and the missing DSes will be
considered unknown. OTOH this is done by using the template function
which is, to the best of my knowledge, rather young in comparison to
the rest of rrdtool. Perhaps it has to mature. You can get the same
behaviour without using the template but you have to specify all DSes
then, so you have to fill in the "U".

Regards,
Alex

--
* To unsubscribe from the rrd-developers mailing list, send a message with the
  subject: unsubscribe to rrd-developers-request at list.ee.ethz.ch



More information about the rrd-developers mailing list