<div dir="ltr">Hi Shane, <div><br></div><div>Thanks for implementing this one new approach. </div><div>Yes, I agree that it solves problems with "JOIN". </div><div><br></div><div>But now I am worry about new problem db.compute_node_update() that changes</div>
<div>every time field with "TEXT" type which means that this should work really slow. </div><div><br></div><div>So I have some question about testing time, did you test just joins or </div><div>joins with parallel N/60 updates/sec of compute_node_update() calls? </div>
<div><br></div><div><div>Also we will need Russell confirmation to merge such a big change right before release. </div><div>Russell what do you think? </div></div><div><br></div><div>From what I know since we don't have a clear solution for this issue community agreed that it would be discussed on the coming summit.<br>
</div><div><br></div><div><br></div><div>Best regards,</div><div>Boris Pavlovic</div><div>--</div><div>Mirantis Inc. </div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 31, 2013 at 9:36 AM, Wang, Shane <span dir="ltr"><<a href="mailto:shane.wang@intel.com" target="_blank">shane.wang@intel.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="ZH-CN" link="blue" vlink="purple">
<div>
<div>
<p class="MsoNormal"><span lang="EN" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">I have a patchset ready for your review
</span><span lang="EN-US" style="font-size:11.0pt"><a href="https://review.openstack.org/#/c/38802/" target="_blank">https://review.openstack.org/#/c/38802/</a></span><span lang="EN" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>

</div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">This patchset is to remove table compute_node_stats and add one more column “stats” in table compute_nodes as JSON dict. With that, compute_node_get_all()
 doesn’t need to join another table when nova schedulers call it.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">My team has done some preliminary tests. The performance could be reduced to ~1.32 seconds from ~16.89 seconds, where we suppose there are 10K
 compute nodes and each node has 20 stats records in compute_node_stats.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Thank you for your review, and what do you think?<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">--<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Shane<u></u><u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Joshua Harlow [mailto:<a href="mailto:harlowja@yahoo-inc.com" target="_blank">harlowja@yahoo-inc.com</a>]
<br>
<b>Sent:</b> Thursday, July 25, 2013 5:36 AM<br>
<b>To:</b> OpenStack Development Mailing List; Boris Pavlovic</span></p><div class="im"><br>
<b>Subject:</b> Re: [openstack-dev] A simple way to improve nova scheduler<u></u><u></u></div><p></p>
</div>
</div><div class="im">
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">As far as the send only when you have to. That reminds me of this piece of work that could be resurrected that slowed down the periodic updates when
 nothing was changing.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><a href="https://review.openstack.org/#/c/26291" target="_blank">https://review.openstack.org/#/c/26291</a>/<u></u><u></u></span></p>

</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">Could be brought back, the concept still feels useful imho. But maybe not to others :-P<u></u><u></u></span></p>

</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif"">From:
</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Boris Pavlovic <<a href="mailto:boris@pavlovic.me" target="_blank">boris@pavlovic.me</a>><br>
<b>Reply-To: </b>OpenStack Development Mailing List <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<b>Date: </b>Wednesday, July 24, 2013 12:12 PM<br>
<b>To: </b>OpenStack Development Mailing List <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<b>Subject: </b>Re: [openstack-dev] A simple way to improve nova scheduler<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">Hi Mike,<u></u><u></u></span></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">On Wed, Jul 24, 2013 at 1:01 AM, Mike Wilson <<a href="mailto:geekinutah@gmail.com" target="_blank">geekinutah@gmail.com</a>> wrote:<u></u><u></u></span></p>

<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">Again I can only speak for qpid, but it's not really a big load on the qpidd server itself. I think the issue is that the updates come in serially
 into each scheduler that you have running. We don't process those quickly enough for it to do any good, which is why the lookup from db. You can see this for yourself using the fake hypervisor, launch yourself a bunch of simulated nova-compute, launch a nova-scheduler
 on the same host and even with 1k or so you will notice the latency between the update being sent and the update actually meaning anything for the scheduler.
<u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">I think a few points that have been brought up could mitigate this quite a bit. My personal view is the following:<u></u><u></u></span></p>

</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">-Only update when you have to (ie. 10k nodes all sending update every periodic interval is heavy, only send when you have to)<u></u><u></u></span></p>

</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">-Don't fanout to schedulers, update a single scheduler which in turn updates a shared store that is fast such as memcache<u></u><u></u></span></p>

</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">I guess that effectively is what you are proposing with the added twist of the shared store.<u></u><u></u></span></p>

</div>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">Absolutely agree with this. Especially with using memcached (or redis) as common storage for all schedulers. <u></u><u></u></span></p>

</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">Best regards,<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">Boris Pavlovic<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">---<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif"">Mirantis Inc. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:8.5pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
</div>
</div>

<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>