On 06/12/2013 09:41 AM, Barak Azulay wrote:
----- Original Message -----
> From: "Itamar Heim" <iheim(a)redhat.com>
> To: "Liran Zelkha" <lzelkha(a)redhat.com>
> Cc: "engine-devel" <engine-devel(a)ovirt.org>
> Sent: Tuesday, June 11, 2013 4:00:21 PM
> Subject: Re: [Engine-devel] Updates in VdsUpdateRuntimeInfo
>
> On 06/11/2013 03:26 PM, Liran Zelkha wrote:
>> Hi all,
>>
>> I'm checking performance for VdsUpdateRunTimeInfo.
>> Naturally, much of the performance surrounds database activity
>> (getVmsRunningOnVds queries, updateDeviceRuntimeInfo, updateVmDynamic)
>>
>> Few questions:
>> 1. I have implemented batch updates for procedure UpdateVmDeviceRuntimeInfo
>> for improved performance.
>> 2. Seems like the only parameters UpdateVmDeviceRuntimeInfo is getting are
>> vm_id,vm_device_id,address and alias. Are those rapidly changing, or will
>> it be beneficial to implement caching on those updates (to ensure
>> not-required updates do not travel to the database).
>
> slowly changing, but how will you cover all flows changing these devices
> to invalidate the cache (iiuc, this table is modified by engine when
> adding devices to a VM as well?)
I don't think that in the device run time info we need to invalidate once we add a
device.
This is a specific case where we actually get the information from the VDSM (addresses
are received from libvirt)
The commands IIRC are first send to VDSM and than update the runtime info only on changed
info (we can also hash it),
It may put the placeholder in the DB first but it still relies on the data received from
VDSM.
if this table is only updated from vdsm to save it, i agree.
but isn't the engine also manipulating it?
wasn't there a request to be able to maybe edit the addresses some day?