Hi all,

I am developing NMS with ability to store variables (interface counters, 
temperature, environment, etc) in RRD. Due to heavy load 
(hundreds of thousands values stored in RRD per minute) I use some sort of 
buffering - counters from hardware with timestamps 
temporary stored in memory queues and periodically entire queue that relates to 
given RRD file stored into this file by separate 
thread using single command like that:

::Rrd::update file_path --template In:Out 1187065338:12345:6789 
1187065358:123456:67890 ...

But sometimes such updates fails with error like that:

RRD Error: illegal attempt to update using time 1187065338 when last update 
time is 1187065682 (minimum one second step)

This error occures with different RRD files with different structures. I added 
debugging output regarding this problem, and this 
debug shows that before this error was no attempt to update this RRD file using 
timestamp 1187065682 at all, and failed command also 
does not contain argument with this timestamp.

How this can happen ? Any ideas ? I have only one idea - sometimes RRD file's 
last update time is time of real update, and not the 
latest timestamp from rrdupdate's data arguments, and if previous update 
happened later than the first counter value appears in 
memory queue, than such error will encounter on the next update.

--
Oleg Derevenetz <[EMAIL PROTECTED]> OOD3-RIPE
Phone: +7 4732 539880
Fax:   +7 4732 531415         http://www.vsi.ru
CenterTelecom Voronezh ISP    http://isp.vsi.ru

_______________________________________________
rrd-users mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users

Reply via email to