Re: [Engine-devel] Async Task Manager improvements

2013-03-13 Thread Yair Zaslavsky


- Original Message -
> From: "Sahina Bose" 
> To: engine-devel@ovirt.org
> Sent: Thursday, March 14, 2013 7:53:15 AM
> Subject: Re: [Engine-devel] Async Task Manager improvements
> 
> Hi Yair,
> 
> Thanks for the detailed design.

Hi Sahina, we're going to change the detailed design, to be more flexible and 
loose coupled.

> Had some questions
> 
> 1. Can we think about introducing some DI framework in the Task
> Management package. This could be used to inject the DAL, VDS Broker,
> Commons etc dependencies. Even the list of providers and
> TaskStatusEvent
> handlers could be registered using this framework.

I think that at this point it's too early to talk about DI at the new task mgmt 
framework, but that's a possibility.
We're aiming to a more general framework for scheduling operations + providing 
a mechanism to signal objects when the operations are ended.

> 
> 2. You mention "Several providers that refer to instances of the same
> external system type have the same ProviderLogic object. " I'm not
> sure
> I understand this. Could you clarify?

This is still a draft and may change. I wanted to distinguish for example 
between an instance of SPM or gluster host and the logic to handle their 
task-related issues - so, you may have several instances of "task provider", 
but you have one logic per task provider type.

> 
> 3. Will TaskManager also talk to Job entity and update/end Job if
> necessary?

Yes, this was not addressed at this point.

> 
> 4. Are we planning to support custom actions on tasks? That is,
> depending on status of task, task can be paused/ resumed/ aborted
> /custom action performed etc

Yes, the next phase of the design we're working on will be more flexible, and 
you will be able to have more flexibility.

> 
> thanks
> sahina
> 
> 
> 
> On 03/11/2013 03:38 PM, Yair Zaslavsky wrote:
> > Hi all,
> >
> > I would like to present you a document I'm working on (still in
> > draft/working-in-progress mode) of changes to be done at the
> > engine async task manager.
> >
> > Regarding the detailed design -
> >
> > The suggested design breaks the task management into two modules -
> > task management/polling part + command management (in context of
> > completion of tasks/commands).
> > The current status of the design is that the design of task
> > management is provided (needs some polishing) - the command
> > management design will be provided soon.
> >
> > In addition, we already have some ideas for an alternative design
> > for the task management part (as suggested by Saggi Mizrahi).
> > After converging , we will present the complete design.
> > The reason we're sending the Wiki now is that community members
> > will be aware mainly to the motivations behind the changes
> >
> > (Perhaps we should create separate documents for the design and for
> > the motivation/requirements)
> >
> > http://www.ovirt.org/Wiki/AsyncTaskManagerChanges
> >
> >
> > Yair
> >
> >
> > ___
> > Engine-devel mailing list
> > Engine-devel@ovirt.org
> > http://lists.ovirt.org/mailman/listinfo/engine-devel
> 
> ___
> Engine-devel mailing list
> Engine-devel@ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel
> 
___
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel


Re: [Engine-devel] Async Task Manager improvements

2013-03-13 Thread Sahina Bose

Hi Yair,

Thanks for the detailed design.
Had some questions

1. Can we think about introducing some DI framework in the Task 
Management package. This could be used to inject the DAL, VDS Broker, 
Commons etc dependencies. Even the list of providers and TaskStatusEvent 
handlers could be registered using this framework.


2. You mention "Several providers that refer to instances of the same 
external system type have the same ProviderLogic object. " I'm not sure 
I understand this. Could you clarify?


3. Will TaskManager also talk to Job entity and update/end Job if necessary?

4. Are we planning to support custom actions on tasks? That is, 
depending on status of task, task can be paused/ resumed/ aborted 
/custom action performed etc


thanks
sahina



On 03/11/2013 03:38 PM, Yair Zaslavsky wrote:

Hi all,

I would like to present you a document I'm working on (still in 
draft/working-in-progress mode) of changes to be done at the engine async task 
manager.

Regarding the detailed design -

The suggested design breaks the task management into two modules - task 
management/polling part + command management (in context of completion of 
tasks/commands).
The current status of the design is that the design of task management is 
provided (needs some polishing) - the command management design will be 
provided soon.

In addition, we already have some ideas for an alternative design for the task 
management part (as suggested by Saggi Mizrahi).
After converging , we will present the complete design.
The reason we're sending the Wiki now is that community members will be aware 
mainly to the motivations behind the changes

(Perhaps we should create separate documents for the design and for the 
motivation/requirements)

http://www.ovirt.org/Wiki/AsyncTaskManagerChanges


Yair


___
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel


___
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel


Re: [Engine-devel] [vdsm] Proposal VDSM <=> Engine Data Statistics Retrieval Optimization

2013-03-13 Thread Ayal Baron


- Original Message -
> 
> 
> - Original Message -
> > From: "Ayal Baron" 
> > To: "Saggi Mizrahi" 
> > Cc: engine-devel@ovirt.org, vdsm-de...@lists.fedorahosted.org,
> > "Vinzenz Feenstra" 
> > Sent: Wednesday, March 13, 2013 5:39:24 PM
> > Subject: Re: [vdsm] [Engine-devel] Proposal VDSM <=> Engine Data
> > Statistics RetrievalOptimization
> > 
> > 
> > 
> > - Original Message -
> > > I am completely against this.
> > > It make the return value differ according to input which
> > > is a big no no when talking about type safe APIs.
> > > 
> > > The only reason we have this problem is because there is this
> > > thing against making multiple calls.
> > > 
> > > Just split it up.
> > > getVmRuntimeStats() - transient things like mem and cpu%
> > > getVmInformation() - (semi)static things like disk\networking
> > > layout
> > > etc.
> > > Each updated at different intervals.
> > 
> > +1 on splitting the data up into 2 separate API calls.
> > You could potentially add a checksum (md5, or any other way) of the
> > "static" data to getVmRuntimeStats and not bother even with polling
> > the VmInformation if this hasn't changed.  Then you could poll as
> > often as you'd like the stats and immediately see if you also need
> > to retrieve VmInfo or not (you rarely would).
> +1 To Ayal's suggestion
> except that instead of the engine hashing the data VDSM sends the
> key which is opaque to the engine.
> This can be a local timestap or a generation number.

Of course vdsm does the hash, otherwise you'd need to pass all the data to 
engine which would beat the purpose.

> 
> But, we might want to consider that when we add events polling
> becomes (much) less frequent so maybe it'll be an overkill.

You'd still need to compare versions of the data in vdsm and send only if it 
changed.  If you don't persist what was received last then potentially you 
could have a monday morning effect where upon on system startup you'd be 
sending everything.  So I still think you'd want to have the hash.


> 
> > 
> > > 
> > > - Original Message -
> > > > From: "Vinzenz Feenstra" 
> > > > To: vdsm-de...@lists.fedorahosted.org, engine-devel@ovirt.org
> > > > Sent: Thursday, March 7, 2013 6:25:54 AM
> > > > Subject: [Engine-devel] Proposal VDSM <=> Engine Data
> > > > Statistics
> > > > Retrieval   Optimization
> > > > 
> > > > 
> > > > Please find the prettier version on the wiki:
> > > > http://www.ovirt.org/Proposal_VDSM_-_Engine_Data_Statistics_Retrieval
> > > > 
> > > > Proposal VDSM - Engine Data Statistics Retrieval
> > > > VDSM <=> Engine data retrieval optimization
> > > > Motivation:
> > > > 
> > > > 
> > > > Currently the RHEVM engine is polling the a lot of data from
> > > > VDSM
> > > > every 15 seconds. This should be optimized and the amount of
> > > > data
> > > > requested should be more specific.
> > > > 
> > > > For each VM the data currently contains much more information
> > > > than
> > > > actually needed which blows up the size of the XML content
> > > > quite
> > > > big. We could optimize this by splitting the reply on the
> > > > getVmStats
> > > > based on the request of the engine into sections. For this
> > > > reason
> > > > Omer Frenkel and me have split up the data into parts based on
> > > > their
> > > > usage.
> > > > 
> > > > This data can and usually does change during the lifetime of
> > > > the
> > > > VM.
> > > > Rarely Changed:
> > > > 
> > > > 
> > > > This data is change not very frequent and it should be enough
> > > > to
> > > > update this only once in a while. Most commonly this data
> > > > changes
> > > > after changes made in the UI or after a migration of the VM to
> > > > another Host. Status = Running acpiEnable = true vmType = kvm
> > > > guestName = W864GUESTAGENTT displayType = qxl guestOs = Win 8
> > > > kvmEnable = true # this should be constant and never changed
> > > > pauseCode = NOERR monitorResponse = 0 session = Locked # unused
> > > > netIfaces = [{'name': 'Realtek RTL8139C+ Fast Ethernet NIC',
> > > > 'inet6':  ['fe80::490c:92bb:bbcc:9f87'], 'inet':
> > > > ['10.34.60.148'],
> > > > 'hw': '00:1a:4a:22:3c:db'}] appsList = ['RHEV-Tools 3.2.4',
> > > > 'RHEV-Agent64 3.2.3', 'RHEV-Serial64 3.2.3', 'RHEV-Network64
> > > > 3.2.2',
> > > > 'RHEV-Network64 3.2.3', 'RHEV-Block64 3.2.3', 'RHEV-Balloon64
> > > > 3.2.3', 'RHEV-Balloon64 3.2.2', 'RHEV-Agent64 3.2.2', 'RHEV-USB
> > > > 3.2.3', 'RHEV-Block64 3.2.2', 'RHEV-Serial64 3.2.2'] pid =
> > > > 11314
> > > > guestIPs = 10.34.60.148 # duplicated info displayIp = 0
> > > > displayPort
> > > > = 5902 displaySecurePort = 5903 username = user@W864GUESTAGENTT
> > > > clientIp = lastLogin = 1361976900.67 Often Changed:
> > > > 
> > > > 
> > > > This data is changed quite often however it is not necessary to
> > > > update this data every 15 seconds. As this is cumulative data
> > > > and
> > > > reflects the current status, and it does not need to be
> > > > snapshotted
> > > > every 15 se

Re: [Engine-devel] [vdsm] Proposal VDSM <=> Engine Data Statistics Retrieval Optimization

2013-03-13 Thread Saggi Mizrahi


- Original Message -
> From: "Ayal Baron" 
> To: "Saggi Mizrahi" 
> Cc: engine-devel@ovirt.org, vdsm-de...@lists.fedorahosted.org, "Vinzenz 
> Feenstra" 
> Sent: Wednesday, March 13, 2013 5:39:24 PM
> Subject: Re: [vdsm] [Engine-devel] Proposal VDSM <=> Engine Data Statistics 
> Retrieval Optimization
> 
> 
> 
> - Original Message -
> > I am completely against this.
> > It make the return value differ according to input which
> > is a big no no when talking about type safe APIs.
> > 
> > The only reason we have this problem is because there is this
> > thing against making multiple calls.
> > 
> > Just split it up.
> > getVmRuntimeStats() - transient things like mem and cpu%
> > getVmInformation() - (semi)static things like disk\networking
> > layout
> > etc.
> > Each updated at different intervals.
> 
> +1 on splitting the data up into 2 separate API calls.
> You could potentially add a checksum (md5, or any other way) of the
> "static" data to getVmRuntimeStats and not bother even with polling
> the VmInformation if this hasn't changed.  Then you could poll as
> often as you'd like the stats and immediately see if you also need
> to retrieve VmInfo or not (you rarely would).
+1 To Ayal's suggestion
except that instead of the engine hashing the data VDSM sends the
key which is opaque to the engine.
This can be a local timestap or a generation number.

But, we might want to consider that when we add events polling
becomes (much) less frequent so maybe it'll be an overkill.

> 
> > 
> > - Original Message -
> > > From: "Vinzenz Feenstra" 
> > > To: vdsm-de...@lists.fedorahosted.org, engine-devel@ovirt.org
> > > Sent: Thursday, March 7, 2013 6:25:54 AM
> > > Subject: [Engine-devel] Proposal VDSM <=> Engine Data Statistics
> > > Retrieval Optimization
> > > 
> > > 
> > > Please find the prettier version on the wiki:
> > > http://www.ovirt.org/Proposal_VDSM_-_Engine_Data_Statistics_Retrieval
> > > 
> > > Proposal VDSM - Engine Data Statistics Retrieval
> > > VDSM <=> Engine data retrieval optimization
> > > Motivation:
> > > 
> > > 
> > > Currently the RHEVM engine is polling the a lot of data from VDSM
> > > every 15 seconds. This should be optimized and the amount of data
> > > requested should be more specific.
> > > 
> > > For each VM the data currently contains much more information
> > > than
> > > actually needed which blows up the size of the XML content quite
> > > big. We could optimize this by splitting the reply on the
> > > getVmStats
> > > based on the request of the engine into sections. For this reason
> > > Omer Frenkel and me have split up the data into parts based on
> > > their
> > > usage.
> > > 
> > > This data can and usually does change during the lifetime of the
> > > VM.
> > > Rarely Changed:
> > > 
> > > 
> > > This data is change not very frequent and it should be enough to
> > > update this only once in a while. Most commonly this data changes
> > > after changes made in the UI or after a migration of the VM to
> > > another Host. Status = Running acpiEnable = true vmType = kvm
> > > guestName = W864GUESTAGENTT displayType = qxl guestOs = Win 8
> > > kvmEnable = true # this should be constant and never changed
> > > pauseCode = NOERR monitorResponse = 0 session = Locked # unused
> > > netIfaces = [{'name': 'Realtek RTL8139C+ Fast Ethernet NIC',
> > > 'inet6':  ['fe80::490c:92bb:bbcc:9f87'], 'inet':
> > > ['10.34.60.148'],
> > > 'hw': '00:1a:4a:22:3c:db'}] appsList = ['RHEV-Tools 3.2.4',
> > > 'RHEV-Agent64 3.2.3', 'RHEV-Serial64 3.2.3', 'RHEV-Network64
> > > 3.2.2',
> > > 'RHEV-Network64 3.2.3', 'RHEV-Block64 3.2.3', 'RHEV-Balloon64
> > > 3.2.3', 'RHEV-Balloon64 3.2.2', 'RHEV-Agent64 3.2.2', 'RHEV-USB
> > > 3.2.3', 'RHEV-Block64 3.2.2', 'RHEV-Serial64 3.2.2'] pid = 11314
> > > guestIPs = 10.34.60.148 # duplicated info displayIp = 0
> > > displayPort
> > > = 5902 displaySecurePort = 5903 username = user@W864GUESTAGENTT
> > > clientIp = lastLogin = 1361976900.67 Often Changed:
> > > 
> > > 
> > > This data is changed quite often however it is not necessary to
> > > update this data every 15 seconds. As this is cumulative data and
> > > reflects the current status, and it does not need to be
> > > snapshotted
> > > every 15 seconds to retrieve statistics. The data can be
> > > retrieved
> > > in much more generous time slices. (e.g. Every 5 minutes) network
> > > =
> > > {'vnet1': {'macAddr': '00:1a:4a:22:3c:db', 'rxDropped': '0',
> > > 'txDropped': '0', 'rxErrors': '0', 'txRate': '0.0', 'rxRate':
> > > '0.0',
> > > 'txErrors': '0', 'state': 'unknown', 'speed': '100', 'name':
> > > 'vnet1'}} disksUsage = [{'path': 'c:\\', 'total': '64055406592',
> > > 'fs': 'NTFS', 'used': '19223846912'}, {'path': 'd:\\', 'total':
> > > '3490912256', 'fs': 'UDF', 'used': '3490912256'}] timeOffset =
> > > 14422
> > > elapsedTime = 68591 hash = 2335461227228498964 statsAge = 0.09 #
> > > unused Often Changed but unused
> > > 
> > > 
> > > This data does not seem to be used in t

Re: [Engine-devel] [vdsm] Proposal VDSM <=> Engine Data Statistics Retrieval Optimization

2013-03-13 Thread Ayal Baron


- Original Message -
> I am completely against this.
> It make the return value differ according to input which
> is a big no no when talking about type safe APIs.
> 
> The only reason we have this problem is because there is this
> thing against making multiple calls.
> 
> Just split it up.
> getVmRuntimeStats() - transient things like mem and cpu%
> getVmInformation() - (semi)static things like disk\networking layout
> etc.
> Each updated at different intervals.

+1 on splitting the data up into 2 separate API calls.
You could potentially add a checksum (md5, or any other way) of the "static" 
data to getVmRuntimeStats and not bother even with polling the VmInformation if 
this hasn't changed.  Then you could poll as often as you'd like the stats and 
immediately see if you also need to retrieve VmInfo or not (you rarely would).

> 
> - Original Message -
> > From: "Vinzenz Feenstra" 
> > To: vdsm-de...@lists.fedorahosted.org, engine-devel@ovirt.org
> > Sent: Thursday, March 7, 2013 6:25:54 AM
> > Subject: [Engine-devel] Proposal VDSM <=> Engine Data Statistics
> > Retrieval   Optimization
> > 
> > 
> > Please find the prettier version on the wiki:
> > http://www.ovirt.org/Proposal_VDSM_-_Engine_Data_Statistics_Retrieval
> > 
> > Proposal VDSM - Engine Data Statistics Retrieval
> > VDSM <=> Engine data retrieval optimization
> > Motivation:
> > 
> > 
> > Currently the RHEVM engine is polling the a lot of data from VDSM
> > every 15 seconds. This should be optimized and the amount of data
> > requested should be more specific.
> > 
> > For each VM the data currently contains much more information than
> > actually needed which blows up the size of the XML content quite
> > big. We could optimize this by splitting the reply on the
> > getVmStats
> > based on the request of the engine into sections. For this reason
> > Omer Frenkel and me have split up the data into parts based on
> > their
> > usage.
> > 
> > This data can and usually does change during the lifetime of the
> > VM.
> > Rarely Changed:
> > 
> > 
> > This data is change not very frequent and it should be enough to
> > update this only once in a while. Most commonly this data changes
> > after changes made in the UI or after a migration of the VM to
> > another Host. Status = Running acpiEnable = true vmType = kvm
> > guestName = W864GUESTAGENTT displayType = qxl guestOs = Win 8
> > kvmEnable = true # this should be constant and never changed
> > pauseCode = NOERR monitorResponse = 0 session = Locked # unused
> > netIfaces = [{'name': 'Realtek RTL8139C+ Fast Ethernet NIC',
> > 'inet6':  ['fe80::490c:92bb:bbcc:9f87'], 'inet': ['10.34.60.148'],
> > 'hw': '00:1a:4a:22:3c:db'}] appsList = ['RHEV-Tools 3.2.4',
> > 'RHEV-Agent64 3.2.3', 'RHEV-Serial64 3.2.3', 'RHEV-Network64
> > 3.2.2',
> > 'RHEV-Network64 3.2.3', 'RHEV-Block64 3.2.3', 'RHEV-Balloon64
> > 3.2.3', 'RHEV-Balloon64 3.2.2', 'RHEV-Agent64 3.2.2', 'RHEV-USB
> > 3.2.3', 'RHEV-Block64 3.2.2', 'RHEV-Serial64 3.2.2'] pid = 11314
> > guestIPs = 10.34.60.148 # duplicated info displayIp = 0 displayPort
> > = 5902 displaySecurePort = 5903 username = user@W864GUESTAGENTT
> > clientIp = lastLogin = 1361976900.67 Often Changed:
> > 
> > 
> > This data is changed quite often however it is not necessary to
> > update this data every 15 seconds. As this is cumulative data and
> > reflects the current status, and it does not need to be snapshotted
> > every 15 seconds to retrieve statistics. The data can be retrieved
> > in much more generous time slices. (e.g. Every 5 minutes) network =
> > {'vnet1': {'macAddr': '00:1a:4a:22:3c:db', 'rxDropped': '0',
> > 'txDropped': '0', 'rxErrors': '0', 'txRate': '0.0', 'rxRate':
> > '0.0',
> > 'txErrors': '0', 'state': 'unknown', 'speed': '100', 'name':
> > 'vnet1'}} disksUsage = [{'path': 'c:\\', 'total': '64055406592',
> > 'fs': 'NTFS', 'used': '19223846912'}, {'path': 'd:\\', 'total':
> > '3490912256', 'fs': 'UDF', 'used': '3490912256'}] timeOffset =
> > 14422
> > elapsedTime = 68591 hash = 2335461227228498964 statsAge = 0.09 #
> > unused Often Changed but unused
> > 
> > 
> > This data does not seem to be used in the engine at all. It is not
> > even used in the data warehouse. memoryStats = {'swap_out': '0',
> > 'majflt': '0', 'mem_free': '1466884', 'swap_in': '0', 'pageflt':
> > '0', 'mem_total': '2096736', 'mem_unused': '1466884'} balloonInfo =
> > {'balloon_max': 2097152, 'balloon_cur': 2097152} disks = {'vda':
> > {'readLatency': '0', 'apparentsize': '64424509440', 'writeLatency':
> > '1754496',  'imageID': '28abb923-7b89-4638-84f8-1700f0b76482',
> > 'flushLatency': '156549',  'readRate': '0.00', 'truesize':
> > '18855059456', 'writeRate': '952.05'}, 'hdc': {'readLatency': '0',
> > 'apparentsize': '0', 'writeLatency': '0', 'flushLatency': '0',
> > 'readRate': '0.00', 'truesize': '0', 'writeRate': '0.00'}} Very
> > frequent uppdates needed by webadmin portal:
> > 
> > 
> > This data is mostly needed for the webadmin portal and might be
> > 

Re: [Engine-devel] Proposal VDSM <=> Engine Data Statistics Retrieval Optimization

2013-03-13 Thread Saggi Mizrahi
I am completely against this.
It make the return value differ according to input which
is a big no no when talking about type safe APIs.

The only reason we have this problem is because there is this
thing against making multiple calls.

Just split it up.
getVmRuntimeStats() - transient things like mem and cpu%
getVmInformation() - (semi)static things like disk\networking layout etc.
Each updated at different intervals.

- Original Message -
> From: "Vinzenz Feenstra" 
> To: vdsm-de...@lists.fedorahosted.org, engine-devel@ovirt.org
> Sent: Thursday, March 7, 2013 6:25:54 AM
> Subject: [Engine-devel] Proposal VDSM <=> Engine Data Statistics Retrieval
> Optimization
> 
> 
> Please find the prettier version on the wiki:
> http://www.ovirt.org/Proposal_VDSM_-_Engine_Data_Statistics_Retrieval
> 
> Proposal VDSM - Engine Data Statistics Retrieval
> VDSM <=> Engine data retrieval optimization
> Motivation:
> 
> 
> Currently the RHEVM engine is polling the a lot of data from VDSM
> every 15 seconds. This should be optimized and the amount of data
> requested should be more specific.
> 
> For each VM the data currently contains much more information than
> actually needed which blows up the size of the XML content quite
> big. We could optimize this by splitting the reply on the getVmStats
> based on the request of the engine into sections. For this reason
> Omer Frenkel and me have split up the data into parts based on their
> usage.
> 
> This data can and usually does change during the lifetime of the VM.
> Rarely Changed:
> 
> 
> This data is change not very frequent and it should be enough to
> update this only once in a while. Most commonly this data changes
> after changes made in the UI or after a migration of the VM to
> another Host. Status = Running acpiEnable = true vmType = kvm
> guestName = W864GUESTAGENTT displayType = qxl guestOs = Win 8
> kvmEnable = true # this should be constant and never changed
> pauseCode = NOERR monitorResponse = 0 session = Locked # unused
> netIfaces = [{'name': 'Realtek RTL8139C+ Fast Ethernet NIC',
> 'inet6':  ['fe80::490c:92bb:bbcc:9f87'], 'inet': ['10.34.60.148'],
> 'hw': '00:1a:4a:22:3c:db'}] appsList = ['RHEV-Tools 3.2.4',
> 'RHEV-Agent64 3.2.3', 'RHEV-Serial64 3.2.3', 'RHEV-Network64 3.2.2',
> 'RHEV-Network64 3.2.3', 'RHEV-Block64 3.2.3', 'RHEV-Balloon64
> 3.2.3', 'RHEV-Balloon64 3.2.2', 'RHEV-Agent64 3.2.2', 'RHEV-USB
> 3.2.3', 'RHEV-Block64 3.2.2', 'RHEV-Serial64 3.2.2'] pid = 11314
> guestIPs = 10.34.60.148 # duplicated info displayIp = 0 displayPort
> = 5902 displaySecurePort = 5903 username = user@W864GUESTAGENTT
> clientIp = lastLogin = 1361976900.67 Often Changed:
> 
> 
> This data is changed quite often however it is not necessary to
> update this data every 15 seconds. As this is cumulative data and
> reflects the current status, and it does not need to be snapshotted
> every 15 seconds to retrieve statistics. The data can be retrieved
> in much more generous time slices. (e.g. Every 5 minutes) network =
> {'vnet1': {'macAddr': '00:1a:4a:22:3c:db', 'rxDropped': '0',
> 'txDropped': '0', 'rxErrors': '0', 'txRate': '0.0', 'rxRate': '0.0',
> 'txErrors': '0', 'state': 'unknown', 'speed': '100', 'name':
> 'vnet1'}} disksUsage = [{'path': 'c:\\', 'total': '64055406592',
> 'fs': 'NTFS', 'used': '19223846912'}, {'path': 'd:\\', 'total':
> '3490912256', 'fs': 'UDF', 'used': '3490912256'}] timeOffset = 14422
> elapsedTime = 68591 hash = 2335461227228498964 statsAge = 0.09 #
> unused Often Changed but unused
> 
> 
> This data does not seem to be used in the engine at all. It is not
> even used in the data warehouse. memoryStats = {'swap_out': '0',
> 'majflt': '0', 'mem_free': '1466884', 'swap_in': '0', 'pageflt':
> '0', 'mem_total': '2096736', 'mem_unused': '1466884'} balloonInfo =
> {'balloon_max': 2097152, 'balloon_cur': 2097152} disks = {'vda':
> {'readLatency': '0', 'apparentsize': '64424509440', 'writeLatency':
> '1754496','imageID': '28abb923-7b89-4638-84f8-1700f0b76482',
> 'flushLatency': '156549',  'readRate': '0.00', 'truesize':
> '18855059456', 'writeRate': '952.05'}, 'hdc': {'readLatency': '0',
> 'apparentsize': '0', 'writeLatency': '0', 'flushLatency': '0',
> 'readRate': '0.00', 'truesize': '0', 'writeRate': '0.00'}} Very
> frequent uppdates needed by webadmin portal:
> 
> 
> This data is mostly needed for the webadmin portal and might be
> required to be updated quite often. An exception here is the
> statsAge field, which seems to be unused by the Engine. This data
> could be requested every 15 seconds to keep things as they are now.
> cpuSys = 2.32 cpuUser = 1.34 memUsage = 30 Proposed Solution for
> VDSM & Engine:
> 
> 
> We will introduce new optional parameters to getVmStats,
> getAllVmStats and list to allow a finer grained specification of
> data which should be included.
> 
> Parameter: statsType =  (getVmStats, getAllVmStats only)
> Allowed values:
> 
> * full (default to keep backwards compatibility)
> * app-list (Just send 

Re: [Engine-devel] VmDynamic kvm_enable

2013-03-13 Thread Dan Kenigsberg
On Wed, Mar 13, 2013 at 12:58:44AM +0200, Itamar Heim wrote:
> On 03/12/2013 05:07 PM, Dan Kenigsberg wrote:
> >On Tue, Mar 12, 2013 at 10:37:41AM -0400, Laszlo Hornyak wrote:
> >>Hi,
> >>
> >>I came across a VmDynamic property 'kvm_enable'. It sounds strange for me, 
> >>because ovirt is very colsely integrated with kvm. So a short dig into this 
> >>flag...
> >>There is a similar thing for the VDS, it is set to true by vdsm is the host 
> >>CPU has a VT flag. It is actually used to check if the host is OK to run 
> >>VMS.
> >>
> >>But the one for Vm it looks like a distributed logical loop in vdsm: it is 
> >>set when constructing a VM object (vdsm/vm.py:~343) from the data sent by 
> >>the client (engine) and then reported back in vm stats, so it is just a 
> >>roundtrip between vdsm and it's client.
> >>In the engine side, it is just keeps sending it between the frontend DB and 
> >>vdsm, never part of a decision.
> >>
> >>Is this still needed here? Can I remove?
> >>VDSM guys?
> >
> >I have a vague memeory that once upon at time, qemu occasionally failed
> >to enable kvm support - even though it was asked to. I then silently
> >switched to emulated mode, which was grindingly slow. Engine wanted to
> >know about such occasions.
> >
> >I believe that a better technical approach would have been to kill the
> >violating process, and not let it run at all (unless qemu emulation was
> >strictly requested by management).
> >
> >Anyway, as you have noted, this has rotten away throuh the years, and
> >unless older Engine versions are expecting this value in any way, I am
> >all for dropping it.
> 
> I think this was about something else - the kvmEnable flag was used
> to launch installations of guests not correctly supported by kvm
> that required real mode or something like that.

You are now speaking about kvmEnable sent by Engine to Vdsm. Laszlo was
speaking about a supposedly-dynamically-changing kvmEnable that is
reported back, in getVmStats.

> hopefully not relevant any more, but need to validate won't break
> older engines indeed.

___
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel


[Engine-devel] engine watchdog support - new version in gerrit

2013-03-13 Thread Laszlo Hornyak
hi,

A new version of the engine watchdog support is available in gerrit. This 
version finished the rest-api support by adding the capabilities resources. The 
features listed in the feature page are ready, so if you have enough time and 
courage, please give it a try!

I have left the patch with [wip] because I am waiting for the end of some 
discussions about the technical background.

http://gerrit.ovirt.org/#/c/12419/

Thx,
Laszlo
___
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel