[openstack-dev] [Nova] [Cyborg] why cyborg can not support an accelerators info list for more than one host?

Ed Leafe ed at leafe.com
Wed Mar 21 16:50:33 UTC 2018


On Mar 21, 2018, at 11:35 AM, 少合冯 <lvmxhster at gmail.com> wrote:
> 
>> By default, hosts are weighed one by one. You can subclass the BaseWeigher (in nova/weights.py) to weigh all objects at once.
> 
> Does that means it require call cyborg accelerator one by one?  the pseudo code as follow:
> for host in hosts:
>        accelerator = cyborg.http_get_ accelerator(host)
>        do_weight_by_accelerator
>        
> Instead of call cyborg accelerators once,  the pseudo code as follow :
> accelerators = cyborg.http_get_ accelerator(hosts)
> for acc in accelerators:
>        do_weight_by_accelerator

What it means is that if you override the weigh_objects() method of the BaseWeigher class, you can make a single call to Cyborg with a list of all the hosts. That call could then create a list of weights for all the hosts and return that. So if you have 100 hosts, you don’t need to make 100 calls to Cyborg; only 1.

-- Ed Leafe








More information about the OpenStack-dev mailing list