[rrd-developers] implementing portable format

kevin brintnall kbrint at rufus.net
Sun Nov 2 05:56:17 CET 2008

On Sat, Nov 01, 2008 at 09:33:46AM +0100, Tobias Oetiker wrote:
> > Maybe we can start to tidy up for 1.4 now (while the storage code is
> > relatively stable) and target the storage changes (portable format,
> > different backends) for 1.5?
> yes you are right, this might be sensible ... release often,
> release early ...
> what work do you see for the cached ?

Here's what I'm currently pondering..  I'm interested in your thoughts on
the new features...



* UPDATEV support?  It would require the daemon to keep a copy of the RRD
  header of each file in memory, and perform the same calculations that
  will ultimately be performed on the real file.

  - higher memory utilization
  - lots of disk reads when the working set is being "primed"
  ? when an update causes a CDP to be written, does that require access to
    the PDP rows or just the info in the header?
  - If it does require reading the rows, the daemon can only efficiently
    return the PDP updates (not CDP) during UPDATEV response

* expose BATCH mode to API/bindings?
  (for my setup I wrote my own protocol speaker and talk directly to the
  daemon for high update rate)

  + enables higher update rates
  - client won't get return codes
    (i.e. you can't know a FLUSH has completed while you're still in BATCH


These are pretty straightforward...


* memchr vs. strchr
  + validate correct behavior if rrdcached receives a '\0' on input

* check strncpy() and snprintf() correct use of sizeof() bounds

* "quit" command (to close connection)

* journal_write: pass sock, move "if(sock!=NULL)" logic into function



 kevin brintnall =~ /kbrint at rufus.net/

More information about the rrd-developers mailing list