[Openstack] Rationale behind using 'rpc:cast' instead of 'rpc:call' for the method "run_instance"

Vishvananda Ishaya vishvananda at gmail.com
Mon Mar 5 20:56:52 UTC 2012


The use of cast is simply so we can return to the user more quickly instead of blocking waiting for a response.  There are some cases where failure handling is a little more complicated and is simplified by using a call.  The live migration is an example of this. It is much less frequently used than run instance, so the extra time due to using a call is an acceptable tradeoff.

Vish

On Mar 5, 2012, at 12:41 PM, Nicolae Paladi wrote:

> Hi, 
> 
> this is my first posting in this mailing list, so if it's an RTFM question, please
> point me to the "FM" :-)
> 
> I would like to know what is the rationale behind using an rpc:cast from 
> scheduler/driver.py when e.g. launching an instance, while rpc.call in driver.py is used only
> for "trivial" methods, like 'compare_cpu'. 
> 
> My guesses would be: 
> a. Launching an instance might take an arbitrarily long time and holding the process alive
> until the instance is launched is unfeasible (since it would consume too much memory)
> b. The call might take too long and it is not possible to specify a timeout for the rpc.call method
> 
> I have noticed that in the trunk version in the module scheduler/api.py there is a quite recent 
> change from 2012-02-29, where the method "live_migration" uses an rpc.call. 
> I assume, that  in this context, a migrating instance can have the same timeout 
> behavior as a newly launched instance, so the difference in approaching launch of an instance and 
> migration of an instance is unclear here.
> 
> The reason I am asking is that for my project (launching instances on "trusted" TPM-enabled platforms)
>  I would like to receive an acknowledgement from the compute node that the instance has been launched.
> 
> Thank you, 
> /Nicolae.
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack at lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp





More information about the Openstack mailing list