<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Webdings;
        panose-1:5 3 1 2 1 5 9 6 7 3;}
@font-face
        {font-family:"Arial Narrow";
        panose-1:2 11 6 6 2 2 2 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-NZ link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal>Attached is a small patch for rrdtool to allow chaining of
update requests received via rrdcached on to a second instance of rrdcached
specified by a command line parameter &#8211;C.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>EG:<o:p></o:p></p>

<p class=MsoNormal>$ rrdcached -l unix:/tmp/a.sock -b /var/rrda<o:p></o:p></p>

<p class=MsoNormal>$ rrdcached -l unix:/tmp/b.sock -b /var/rrdb -C unix:/tmp/a.sock<o:p></o:p></p>

<p class=MsoNormal>$ rrdtool update --daemon unix:/tmp/b.sock foo.rrd N:1:1<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>This updates foo.rrd in both /var/rrdb <i>and</i> /var/rrda,
provided it exists, of course.&nbsp; This also works over TCP sockets, and you
can mix and match UNIX and TCP sockets if you like.&nbsp; This patch only
chains UPDATE requests, not CREATEs, STATs, or anything else.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>The requests are sent to the remote daemon immediately after
they are added to the update queue for the receiving daemon (thus avoiding any
trouble of how to handle them after queueing).&nbsp; If the relay fails then an
error is logged BUT the rrdcached still returns a success code to the remote
client (as there is no &#8216;warning&#8217; code for a partial success).<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>I&#8217;ve run this here for a few days keeping a shadow
copy of our secondary MRTG server&#8217;s RRD files, and it worked without
problem.&nbsp; There was a bit of an issue when I defined two instances to
chain to each other, though <span style='font-family:Wingdings'>J</span><o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>I think it would need to have CREATE, and probably FLUSH,
FLUSHALL and STATS chained as well for this to be of real use.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Thoughts?<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Steve<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<div class=MsoNormal align=center style='text-align:center'><span lang=EN-US>

<hr size=2 width="100%" align=center>

</span></div>

<p class=MsoNormal><b>Steve Shipway<o:p></o:p></b></p>

<p class=MsoNormal><span style='font-size:10.0pt'>ITS Unix Services Design Lead<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>University of Auckland, New
Zealand<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>Floor 1, 58 Symonds Street,
Auckland<o:p></o:p></span></p>

<p class=MsoNormal><i><span style='font-size:10.0pt;color:#595959'>Phone: +64
(0)9 3737599 ext 86487<o:p></o:p></span></i></p>

<p class=MsoNormal><i><span style='font-size:10.0pt;color:#595959'>DDI: +64
(0)9 924 6487<o:p></o:p></span></i></p>

<p class=MsoNormal><i><span style='font-size:10.0pt;color:#595959'>Mobile: +64
(0)21 753 189<o:p></o:p></span></i></p>

<p class=MsoNormal><i><span style='font-size:10.0pt;color:#595959'>Email: <a
href="mailto:s.shipway@auckland.ac.nz"><span style='color:#595959'>s.shipway@auckland.ac.nz</span></a><o:p></o:p></span></i></p>

<p class=MsoNormal><span lang=EN-GB style='font-size:18.0pt;font-family:Webdings;
color:green'>P</span><span lang=EN-GB style='color:blue'> </span><span
lang=EN-GB style='font-size:10.0pt;font-family:"Arial Narrow","sans-serif";
color:green'>Please consider the environment before printing this e-mail</span><span
lang=EN-GB style='color:blue'> </span><span lang=EN-GB style='font-size:7.5pt;
font-family:"Verdana","sans-serif";color:navy'><o:p></o:p></span></p>

<p class=MsoNormal><i><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></i></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>