[Engine-devel] Serial Execution of Async Tasks

Livnat Peer lpeer at redhat.com
Sun Aug 12 06:39:23 UTC 2012


On 10/08/12 03:40, Eli Mesika wrote:
> 
> 
> ----- Original Message -----
>> From: "Allon Mureinik" <amureini at redhat.com>
>> To: "engine-devel" <engine-devel at ovirt.org>
>> Cc: "Eduardo Warszawski" <ewarszaw at redhat.com>, "Yeela Kaplan" <ykaplan at redhat.com>, "Federico Simoncelli"
>> <fsimonce at redhat.com>, "Liron Aravot" <laravot at redhat.com>
>> Sent: Thursday, August 9, 2012 6:41:09 PM
>> Subject: [Engine-devel] Serial Execution of Async Tasks
>>
>> Hi guys,
>>
>> As you may know the engine currently has the ability to fire an SPM
>> task, and be asynchronously be "woken-up" when it ends.
>> This is great, but we found the for the Live Storage Migration
>> feature we need something a bit complex - the ability to have a
>> series of async tasks in a single control flow.
>>
>> Here's my initial design for this, your comments and criticism would
>> be welcome:
>> http://wiki.ovirt.org/wiki/Features/Serial_Execution_of_Asynchronous_Tasks_Detailed_Design
> 
> Apart from the short explanation & flow , since this is a detailed design , I would add
> 1) Class diagram
> 2) Flow diagram 
> 

+1, it would help understanding the flow.

- It looks like you chose not re-use/extend the ExecutionHandler (the
entity used for building the tasks view exposed to the users).
It might be a good idea to keep the separation between the engine Jobs
and the underlying vdsm tasks, but I want to make sure you are familiar
with this mechanism and ruled it out with a reason. If this is the case
please share why you decided not to use it.


- how does this design survives a jboss restart? Can you please a
section in the wiki to explain that.

-successful execution -
* "CommandBase iterates over its SPMAsyncTaskHandlers" - when?
* If the second task is an HSM command (vs. SPM command), I think you
should explain in the design how to handle such flows as well.
* Why do we need before task? can you give a concrete example of what
would you do in such a method.

- I see you added SPMAsyncTaskHandler, any reason not to use
SPMAsyncTasK to manage it own life-cycle?

- In the life-cycle managed by the SPMAsyncTaskHandler there is a step
'createTask - how to create the async task' can you please elaborate
what are the options.





Livnat

>>
>>
>> -Allon
>> _______________________________________________
>> Engine-devel mailing list
>> Engine-devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/engine-devel
>>
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel
> 




More information about the Devel mailing list