<div dir="ltr"><div class="gmail_extra"><div><br></div><div class="gmail_quote">On Fri, Jan 24, 2014 at 12:55 PM, Day, Phil <span dir="ltr"><<a href="mailto:philip.day@hp.com" target="_blank">philip.day@hp.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div><div class="im">
<p class="MsoNormal">> I haven't actually found where metadata caching is implemented, although the constructor of InstanceMetadata documents restrictions that really only make sense if it is.  Anyone know where it is cached?<br>

<br>
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
</div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Here’s the code that does the caching:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><a href="https://github.com/openstack/nova/blob/master/nova/api/metadata/handler.py#L84-L98" target="_blank">https://github.com/openstack/nova/blob/master/nova/api/metadata/handler.py#L84-L98</a><u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Data is only cached for 15 seconds by default – the main reason for caching is that cloud-init makes a sequence of calls to get various items of metadata, and
 it saves a lot of DB access if we don’t have to go back for them multiple times.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">If your using the Openstack metadata calls instead then the caching doesn’t buy much as it returns a single json blob with all the values.</span></p>
</div></div></blockquote><div><br></div><div>Thanks (not quite sure how I missed that, but I did!)  15 second 'micro-caching' is probably great for peer discovery.  Short enough that we'll find any peer basically as soon as it boots if we're polling (e.g. we haven't yet connected to a peer), long enough to prevent denial-of-service.</div>
<div><br></div></div></div></div>