<div dir="ltr"><div>John, </div><div><br></div><div><br></div><div>The main point here is to reduce amount of data that we request from DB and that is process by API services and sent via network</div><div>and make SQL requests simpler (remove joins from SELECT). </div><div><br></div><div>So like if you fetch 10 bytes instead of 1000 bytes you will process 100 times less and it will scale 100 timer better and work overall 100 time faster. </div><div><br></div><div>From other side polling may easily cause 100 API requests / second And create significant load on the cloud. </div><div><br></div>Clint, <div><br></div><div>Please do not forget abut the fact that we are removing from SQL requests JOINs. </div><div><br></div><div>Here is how look SQL request that gets VM info:</div><div><a href="http://paste.openstack.org/show/477934/">http://paste.openstack.org/show/477934/</a> (it has 6 joins) <br></div><div><br></div><div>This is how it looks for glance image: </div><div><a href="http://paste.openstack.org/show/477933/">http://paste.openstack.org/show/477933/</a> (it has 2 joins)<br></div><div><br></div><div>So the performance/scale impact will be higher.</div><div><br></div><div>Best regards,</div><div>Boris Pavlovic </div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 4, 2015 at 4:18 PM, Clint Byrum <span dir="ltr"><<a href="mailto:clint@fewbar.com" target="_blank">clint@fewbar.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Excerpts from Boris Pavlovic's message of 2015-11-03 17:32:43 -0800:<br>
<span class="">> Clint, Morgan,<br>
><br>
> I totally agree that the pub/sub model is better approach.<br>
><br>
> However, there are 2 great things about polling:<br>
> 1) it's simpler to use than pub/sub (especially in shell)<br>
<br>
</span>I envision something like this:<br>
<br>
<br>
while changes=$(openstack compute server-events --run react-to-status --fields status id1 id2 id3 id4) ; do<br>
  for id_and_status in $changes ; do<br>
    id=${id_and_status##:}<br>
    status=${id_and_status%%:}<br>
  done<br>
done<br>
<br>
Not exactly "hard"<br>
<span class=""><br>
> 2) it has really simple implementation & we can get this in OpenStack in<br>
> few days/weeks<br>
><br>
<br>
</span>It doesn't actually solve a ton of things though. Even if we optimize<br>
it down to the fewest operations, it is still ultimately a DB query and<br>
extra churn in the API service.<br>
<div class="HOEnZb"><div class="h5"><br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div>