Re: [vdsm] migration progress feature

2013-07-22 Thread Michal Skrivanek

On Jul 22, 2013, at 15:03 , Dan Kenigsberg  wrote:

> On Sun, Jul 21, 2013 at 10:29:03PM +0300, Itamar Heim wrote:
>> On 07/21/2013 12:14 PM, Dan Kenigsberg wrote:
>>> Introducing a new verb, getMigrationStatuses(), would allow Engine to
>>> collect this piece of statistics in the exact frequency that it needs
>>> it. Coupling this data with the frequently-polled state of VM begs for
>>> future complaints that getVMList(full=False) is too heavy, and that we
>>> must introduce getVMList(full=False, veryveryskinny=True).
>> 
>> so the most likely outcome is engine would be calling this every
>> time it calls getAllVmStats?
> 
> Having two different verbs allows the client to play with the frequency
> of polling. Last word I've heard was that getAllVmStats is too heavy to
> be called in the frequency that getMigrationStatuses is needed.
> 
> If Engine is happy to lock the frequency of getMigrationStatuses to that
> of getAllVmStats, we can include migrateStatus within getAllVmStats. I
> already conceded to this earlier in this thread.

which is possible, yes. The complaint is that it still wastes a roundtrip.
And user-wise it would be too slow, I as a user would expect the percentage 
move a bit faster than once in 15s. The frequency of "list" is actually ideal 
(3s).

We really do have to much of polling and we should not add more. Still, let's 
see after Vinzenz provides some example measurements of the real traffic/load 
it causes. I hope it will give us a hint which way is better. Before that I'd 
hold off with implementation as I don't think it's wise to implement something 
which may cause more performance issues than we already have.

Thanks,
michal

> 
> Dan.

___
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel


Re: [vdsm] migration progress feature

2013-07-22 Thread Dan Kenigsberg
On Sun, Jul 21, 2013 at 10:29:03PM +0300, Itamar Heim wrote:
> On 07/21/2013 12:14 PM, Dan Kenigsberg wrote:
> >Introducing a new verb, getMigrationStatuses(), would allow Engine to
> >collect this piece of statistics in the exact frequency that it needs
> >it. Coupling this data with the frequently-polled state of VM begs for
> >future complaints that getVMList(full=False) is too heavy, and that we
> >must introduce getVMList(full=False, veryveryskinny=True).
> 
> so the most likely outcome is engine would be calling this every
> time it calls getAllVmStats?

Having two different verbs allows the client to play with the frequency
of polling. Last word I've heard was that getAllVmStats is too heavy to
be called in the frequency that getMigrationStatuses is needed.

If Engine is happy to lock the frequency of getMigrationStatuses to that
of getAllVmStats, we can include migrateStatus within getAllVmStats. I
already conceded to this earlier in this thread.

Dan.
___
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel


Re: [vdsm] migration progress feature

2013-07-21 Thread Itamar Heim

On 07/21/2013 12:14 PM, Dan Kenigsberg wrote:

Introducing a new verb, getMigrationStatuses(), would allow Engine to
collect this piece of statistics in the exact frequency that it needs
it. Coupling this data with the frequently-polled state of VM begs for
future complaints that getVMList(full=False) is too heavy, and that we
must introduce getVMList(full=False, veryveryskinny=True).


so the most likely outcome is engine would be calling this every time it 
calls getAllVmStats?

___
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel


Re: [vdsm] migration progress feature

2013-07-21 Thread Dan Kenigsberg
On Thu, Jul 18, 2013 at 05:29:14AM +0300, Itamar Heim wrote:
> On 07/18/2013 01:24 AM, Doron Fediuck wrote:
> >
> >
> >- Original Message -
> >| From: "Michal Skrivanek" 
> >| To: "Peter V. Saveliev" , 
> >"vdsm-devel@lists.fedorahosted.org Development"
> >| 
> >| Sent: Monday, July 8, 2013 5:13:42 PM
> >| Subject: Re: [vdsm] migration progress feature
> >|
> >|
> >| On Jul 4, 2013, at 16:04 , Peter V. Saveliev  wrote:
> >|
> >| > …
> >| >
> >| > Goal
> >| > 
> >| >
> >| > We have to implement a feature, migration progress bar in the UI. This
> >| > migration bar should reflect not only the progress, but if the migration
> >| > is stalled and so on.
> >| >
> >| > Tasks
> >| > =
> >| >
> >| > * Get the information from libvirt: it provides job progress in the same
> >| > way for all migration-like jobs: migration, suspend, snapshot
> >| > * Feed this information to the engine
> >| > * Reflect it in the UI
> >| >
> >| > API status
> >| > ==
> >| >
> >| > Libvirt info is OK — it is available for any migration-like job, be it
> >| > migration, suspend or snapshot.
> >| >
> >| > In VDSM, we have an API call, a separate verb to report the migration
> >| > progress: migrateStatus()
> >| >
> >| > But also we have getVmList() call, polled by the engine every several
> >| > seconds.
> >| >
> >| > Proposal
> >| > 
> >| >
> >| > We would propose to provide an optional field, `migrateStatus`, in the
> >| > report sent by getVmList(). This approach should save a good amount of
> >| > traffic and ease the engine side logic.
> >| >
> >| > Having the separate verb, this can sound weird, but I'm sure that the
> >| > optimisation worth it.
> >| >
> >| > Please, read the patchset [1] and discuss it here.
> >|
> >| From my point of view this makes sense as it doesn't require additional
> >| bandwidth and calls.
> >| Also means no additional complexity in engine. I don't feel comfortable to
> >| add another poll request during migration which makes the logic in engine
> >| more complicated and means even higher traffic between hosts and engine. 
> >Not
> >| that it's not doable, I just don't think it's the right way to go. I agree
> >| it's not ideal from purely API point of view...however to me it seems
> >| logical to have it as part of statistics as it is a sort of statistic, and
> >| it doesn't require an extra call. The extra call already exist, it's just
> >| that I think we already have too many. We should start looking into
> >| effective communication, not necessarily clean
> >|
> >| Thanks,
> >| michal
> >|
> >
> >+1
> >such a feature will be very handy when migrating large guests (8GB+) over
> >sub-optimal network. In such a case the last thing you want to do is 
> >additional
> >calls. Re-using the existing calls by extending the statistics makes a lot
> >of sense.
> 
> i'm also in favor - vm status is treated as an async update based on
> the stats. vdsm can send this item only for vms which are migrating
> for example.

I oppose the idea of overloading the getVMList(full=False) with
migration-related statistics just because Engine happens to be calling
this verb frequently. The full=False was born in sin and defies common
practices of client/server design.

getAllVmStats() was intended to supply all interesting statistics for
all running VMs. Adding migration statistics to it makes much more
sense. However, the size of its repsonse is quite large already, and I
heard that people are afread that calling it more frequestly would
degrade Engine's performence.

Introducing a new verb, getMigrationStatuses(), would allow Engine to
collect this piece of statistics in the exact frequency that it needs
it. Coupling this data with the frequently-polled state of VM begs for
future complaints that getVMList(full=False) is too heavy, and that we
must introduce getVMList(full=False, veryveryskinny=True).

Regrads,
Dan.
___
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel


Re: [vdsm] migration progress feature

2013-07-17 Thread Itamar Heim

On 07/18/2013 01:24 AM, Doron Fediuck wrote:



- Original Message -
| From: "Michal Skrivanek" 
| To: "Peter V. Saveliev" , "vdsm-devel@lists.fedorahosted.org 
Development"
| 
| Sent: Monday, July 8, 2013 5:13:42 PM
| Subject: Re: [vdsm] migration progress feature
|
|
| On Jul 4, 2013, at 16:04 , Peter V. Saveliev  wrote:
|
| > …
| >
| > Goal
| > 
| >
| > We have to implement a feature, migration progress bar in the UI. This
| > migration bar should reflect not only the progress, but if the migration
| > is stalled and so on.
| >
| > Tasks
| > =
| >
| > * Get the information from libvirt: it provides job progress in the same
| > way for all migration-like jobs: migration, suspend, snapshot
| > * Feed this information to the engine
| > * Reflect it in the UI
| >
| > API status
| > ==
| >
| > Libvirt info is OK — it is available for any migration-like job, be it
| > migration, suspend or snapshot.
| >
| > In VDSM, we have an API call, a separate verb to report the migration
| > progress: migrateStatus()
| >
| > But also we have getVmList() call, polled by the engine every several
| > seconds.
| >
| > Proposal
| > 
| >
| > We would propose to provide an optional field, `migrateStatus`, in the
| > report sent by getVmList(). This approach should save a good amount of
| > traffic and ease the engine side logic.
| >
| > Having the separate verb, this can sound weird, but I'm sure that the
| > optimisation worth it.
| >
| > Please, read the patchset [1] and discuss it here.
|
| From my point of view this makes sense as it doesn't require additional
| bandwidth and calls.
| Also means no additional complexity in engine. I don't feel comfortable to
| add another poll request during migration which makes the logic in engine
| more complicated and means even higher traffic between hosts and engine. Not
| that it's not doable, I just don't think it's the right way to go. I agree
| it's not ideal from purely API point of view...however to me it seems
| logical to have it as part of statistics as it is a sort of statistic, and
| it doesn't require an extra call. The extra call already exist, it's just
| that I think we already have too many. We should start looking into
| effective communication, not necessarily clean
|
| Thanks,
| michal
|

+1
such a feature will be very handy when migrating large guests (8GB+) over
sub-optimal network. In such a case the last thing you want to do is additional
calls. Re-using the existing calls by extending the statistics makes a lot
of sense.


i'm also in favor - vm status is treated as an async update based on the 
stats. vdsm can send this item only for vms which are migrating for example.


___
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel


Re: [vdsm] migration progress feature

2013-07-17 Thread Doron Fediuck


- Original Message -
| From: "Michal Skrivanek" 
| To: "Peter V. Saveliev" , "vdsm-devel@lists.fedorahosted.org 
Development"
| 
| Sent: Monday, July 8, 2013 5:13:42 PM
| Subject: Re: [vdsm] migration progress feature
| 
| 
| On Jul 4, 2013, at 16:04 , Peter V. Saveliev  wrote:
| 
| > …
| > 
| > Goal
| > 
| > 
| > We have to implement a feature, migration progress bar in the UI. This
| > migration bar should reflect not only the progress, but if the migration
| > is stalled and so on.
| > 
| > Tasks
| > =
| > 
| > * Get the information from libvirt: it provides job progress in the same
| > way for all migration-like jobs: migration, suspend, snapshot
| > * Feed this information to the engine
| > * Reflect it in the UI
| > 
| > API status
| > ==
| > 
| > Libvirt info is OK — it is available for any migration-like job, be it
| > migration, suspend or snapshot.
| > 
| > In VDSM, we have an API call, a separate verb to report the migration
| > progress: migrateStatus()
| > 
| > But also we have getVmList() call, polled by the engine every several
| > seconds.
| > 
| > Proposal
| > 
| > 
| > We would propose to provide an optional field, `migrateStatus`, in the
| > report sent by getVmList(). This approach should save a good amount of
| > traffic and ease the engine side logic.
| > 
| > Having the separate verb, this can sound weird, but I'm sure that the
| > optimisation worth it.
| > 
| > Please, read the patchset [1] and discuss it here.
| 
| From my point of view this makes sense as it doesn't require additional
| bandwidth and calls.
| Also means no additional complexity in engine. I don't feel comfortable to
| add another poll request during migration which makes the logic in engine
| more complicated and means even higher traffic between hosts and engine. Not
| that it's not doable, I just don't think it's the right way to go. I agree
| it's not ideal from purely API point of view...however to me it seems
| logical to have it as part of statistics as it is a sort of statistic, and
| it doesn't require an extra call. The extra call already exist, it's just
| that I think we already have too many. We should start looking into
| effective communication, not necessarily clean
| 
| Thanks,
| michal
| 

+1
such a feature will be very handy when migrating large guests (8GB+) over
sub-optimal network. In such a case the last thing you want to do is additional
calls. Re-using the existing calls by extending the statistics makes a lot
of sense.

| > 
| > 
| > Thanks.
| > 
| > [1] http://gerrit.ovirt.org/#/c/15125/
| > --
| > Peter V. Saveliev
| > ___
| > vdsm-devel mailing list
| > vdsm-devel@lists.fedorahosted.org
| > https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel
| 
| ___
| vdsm-devel mailing list
| vdsm-devel@lists.fedorahosted.org
| https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel
| 
___
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel


Re: [vdsm] migration progress feature

2013-07-08 Thread Michal Skrivanek

On Jul 4, 2013, at 16:04 , Peter V. Saveliev  wrote:

> …
> 
> Goal
> 
> 
> We have to implement a feature, migration progress bar in the UI. This 
> migration bar should reflect not only the progress, but if the migration is 
> stalled and so on.
> 
> Tasks
> =
> 
> * Get the information from libvirt: it provides job progress in the same way 
> for all migration-like jobs: migration, suspend, snapshot
> * Feed this information to the engine
> * Reflect it in the UI
> 
> API status
> ==
> 
> Libvirt info is OK — it is available for any migration-like job, be it 
> migration, suspend or snapshot.
> 
> In VDSM, we have an API call, a separate verb to report the migration 
> progress: migrateStatus()
> 
> But also we have getVmList() call, polled by the engine every several seconds.
> 
> Proposal
> 
> 
> We would propose to provide an optional field, `migrateStatus`, in the report 
> sent by getVmList(). This approach should save a good amount of traffic and 
> ease the engine side logic.
> 
> Having the separate verb, this can sound weird, but I'm sure that the 
> optimisation worth it.
> 
> Please, read the patchset [1] and discuss it here.

From my point of view this makes sense as it doesn't require additional 
bandwidth and calls.
Also means no additional complexity in engine. I don't feel comfortable to add 
another poll request during migration which makes the logic in engine more 
complicated and means even higher traffic between hosts and engine. Not that 
it's not doable, I just don't think it's the right way to go. I agree it's not 
ideal from purely API point of view...however to me it seems logical to have it 
as part of statistics as it is a sort of statistic, and it doesn't require an 
extra call. The extra call already exist, it's just that I think we already 
have too many. We should start looking into effective communication, not 
necessarily clean 

Thanks,
michal

> 
> 
> Thanks.
> 
> [1] http://gerrit.ovirt.org/#/c/15125/
> -- 
> Peter V. Saveliev
> ___
> vdsm-devel mailing list
> vdsm-devel@lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel

___
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel


[vdsm] migration progress feature

2013-07-04 Thread Peter V. Saveliev

…

Goal


We have to implement a feature, migration progress bar in the UI. This 
migration bar should reflect not only the progress, but if the migration 
is stalled and so on.


Tasks
=

* Get the information from libvirt: it provides job progress in the same 
way for all migration-like jobs: migration, suspend, snapshot

* Feed this information to the engine
* Reflect it in the UI

API status
==

Libvirt info is OK — it is available for any migration-like job, be it 
migration, suspend or snapshot.


In VDSM, we have an API call, a separate verb to report the migration 
progress: migrateStatus()


But also we have getVmList() call, polled by the engine every several 
seconds.


Proposal


We would propose to provide an optional field, `migrateStatus`, in the 
report sent by getVmList(). This approach should save a good amount of 
traffic and ease the engine side logic.


Having the separate verb, this can sound weird, but I'm sure that the 
optimisation worth it.


Please, read the patchset [1] and discuss it here.


Thanks.

[1] http://gerrit.ovirt.org/#/c/15125/
--
Peter V. Saveliev
___
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel