[ovirt-devel] "Host.queryVms": A proposal for new a VDSM API verb

Vinzenz Feenstra vfeenstr at redhat.com
Tue Jul 22 09:29:40 UTC 2014


On 07/14/2014 04:05 PM, Vinzenz Feenstra wrote:
> Hi,
Since this mail did not receive enough attention I am bumping it again.

For this proposal exists currently a draft patch 
http://gerrit.ovirt.org/#/c/28819/
The patch is not final since the query function should not require to 
update all the data
on every call. (This should be done directly by data modifying code. 
However that would be implemented by follow up patches)

The trackable.py implementation also can be easily extended in future 
for enabling push notifications to the engine once
we switched to the new communication. This could be done by subscribing 
to certain keys in the TrackableMapping instance.
(Not implemented yet)

Anyway I am asking once more for comments on the proposal.

>
> This proposal is a follow up on a previous discussion about
> optimizing the communication between VDSM and the ovirt-engine.
>
>
> Currently the engine polls VDSM every 3 seconds with the `list`
> verb to retrieve the status of all VMs. Every 5th time (every 15
> seconds) it alternates to 'getAllVmStats' which gives more
> information about the VMs.
>
>
> Quite a big portion of the data, mainly the reply of getAllVmStats,
> is only of interest if it actually changes so that the engine/back-end
> can act on changes and update rows accordingly.
>
> Now the problem is that there is quite a lot of data transferred
> which is not really necessary and there is a 15 seconds delay on
> communicating changes to certain VMs before the engine actually
> can react on them and before these changes can be communicated
> to the user.
>
> As part of an improvement on this matter I'd like to propose a new API
> verb for VDSM:
>
> Host.queryVms(vmIds=[], fields=[], exclude=[], changedSince='')
>
> This new verb is intended to eventually replace 2 currently
> used verbs `list` and `getAllVmStats`. `queryVms` is supposed to
> allow to request any data fields of a VM which can be requested through
> the public API:
>
> - Statistics
> - Configuration
> - Status information
> - Guest OS Information
>
> I have executed some tests and in those tested scenarios the new Verb
> can result in an improvement of 75%-90% of data transferred and average
> response body size depending on the scenario and usage.
>
> The test results can be found here:
> http://www.ovirt.org/Feature/VDSM_VM_Query_API/Measurements#Results
> (An explanation of the tested methods is on the top of the page and a
> description of the scenario in each section)
>
> The benefit of introducing this verb would be a lowered volume of data
> transferred over the management network which avoids congestion
> on huge setups and can introduce an increased responsiveness for
> communicating changes in state to the user. For example live migration
> status. However even SLA related changes could be communicated faster
> for things like QoS.
>
>
> Preliminary Feature Proposal Wiki:
> http://www.ovirt.org/Feature/VDSM_VM_Query_API
>


-- 
Regards,

Vinzenz Feenstra | Senior Software Engineer
RedHat Engineering Virtualization R & D
Phone: +420 532 294 625
IRC: vfeenstr or evilissimo

Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com




More information about the Devel mailing list